aboutsummaryrefslogtreecommitdiffstats
path: root/doc/misc
diff options
context:
space:
mode:
authorStefan Kangas2023-03-20 06:30:32 +0100
committerStefan Kangas2023-03-20 06:30:32 +0100
commit20d8a1cf4bdc1de994b5c39a8ee02af657416c56 (patch)
tree542aff7d6767542a42e4fb6a84c69f4dece073ef /doc/misc
parentf615968fe1b4726e3914aa65e4b7c6c6be07ea70 (diff)
parentea87c54f359e3d98b4f21a0904206b3696b4bb74 (diff)
downloademacs-20d8a1cf4bdc1de994b5c39a8ee02af657416c56.tar.gz
emacs-20d8a1cf4bdc1de994b5c39a8ee02af657416c56.zip
Merge from origin/emacs-29
ea87c54f359 ; * lisp/subr.el (setq-local): Add missing period (bug#62... 90362f87d58 ; Correct last commit, downcase node reference 38067f05b92 Enhance section about troubleshooting in Eglot manual. 6f82596b490 Fix Eglot's snippet insertion to follow the manual c54bda15e35 Reset abbrevs-changed after saving abbrevs (bug#62208) e8cee15f780 ; Fix markup in previous change e4a7d0cd6ea Document `keymap-unset' in lispref bb3e0ded9eb Don't add a key binding when REMOVE is non-nil a4a9ffdd80a Fix the documentation of various aspects of adding Xref h... a2222b9a9bf ; Minor wording fix in ELisp reference manual 5cf1de683b2 Fix python-fill-paragraph problems on filling strings (bu... 7385c991dff Also exempt eglot-inlay-hints-mode from desktop.el's fumb... 1961bdb52ed ; Add WebDAV entry to index in Tramp manual dfb36d36230 Refer to EWW instead of w3 and w3m 9d3fdf7e0d4 Fix Eglot's command generation for code actions # Conflicts: # etc/NEWS
Diffstat (limited to 'doc/misc')
-rw-r--r--doc/misc/eglot.texi106
-rw-r--r--doc/misc/idlwave.texi7
-rw-r--r--doc/misc/tramp.texi1
3 files changed, 82 insertions, 32 deletions
diff --git a/doc/misc/eglot.texi b/doc/misc/eglot.texi
index 85f83ee4b26..5ebc055ecf7 100644
--- a/doc/misc/eglot.texi
+++ b/doc/misc/eglot.texi
@@ -1292,53 +1292,103 @@ pop up special buffers that can be used to inspect the communications
1292between the Eglot and language server. In many cases, this will 1292between the Eglot and language server. In many cases, this will
1293indicate the problems or at least provide a hint. 1293indicate the problems or at least provide a hint.
1294 1294
1295@cindex performance
1295A common and easy-to-fix cause of performance problems is the length 1296A common and easy-to-fix cause of performance problems is the length
1296of these two buffers. If Eglot is operating correctly but slowly, 1297of the Eglot events buffer because it represent additional work that
1297customize the variable @code{eglot-events-buffer-size} (@pxref{Eglot 1298Eglot must do. After verifying Eglot is operating correctly but
1298Variables}) to limit logging, and thus speed things up. 1299slowly, try to customize the variable @code{eglot-events-buffer-size}
1299 1300(@pxref{Eglot Variables}) to 0. This will disable any debug logging
1300If you need to report an Eglot bug, please keep in mind that, because 1301and may speed things up.
1301there are so many variables involved, it is generally both very 1302
1302@emph{difficult} and @emph{absolutely essential} to reproduce bugs 1303In other situations, the cause of poor performance lies in the LSP
1303exactly as they happened to you, the user. Therefore, every bug 1304server itself. Servers use aggressive caching and other techniques to
1304report should include: 1305improve their performance. Often, this can be tweaked by changing the
1306server configuration (@pxref{Advanced server configuration}).
1307
1308If you think you have found a bug, we want to hear about it. Before
1309reporting a bug, keep in mind that interaction with LSP servers
1310represents a large quantity of unknown variables. Therefore, it is
1311generally both @emph{difficult} and @emph{absolutely essential} that
1312the maintainers reproduce bugs exactly as they happened to you, the
1313user.
1314
1315To report an Eglot bug, send e-mail to @email{bug-gnu-emacs@@gnu.org}.
1316
1317Get acquainted with Emacs's bug reporting guidelines (@pxref{Bugs,,,
1318emacs, GNU Emacs Manual}). Then, follow this checklist specific to
1319Eglot bug rerpots.
1305 1320
1306@enumerate 1321@enumerate
1307@item 1322@item
1308The transcript of events obtained from the buffer popped up by 1323Include the transcript of JSONRPC events obtained from the buffer
1309@kbd{M-x eglot-events-buffer}. If the transcript can be narrowed down 1324popped up by @kbd{M-x eglot-events-buffer}. You may narrow down the
1310to show the problematic exchange, so much the better. This is 1325transcript if you are sure of where the problematic exchange is, but
1311invaluable for the investigation and reproduction of the problem. 1326it's safer to include the whole transcript, either attached or inline.
1312 1327
1313@item 1328@item
1314If Emacs signaled an error (an error message was seen or heard), make 1329If Emacs signaled an error (an error message was seen or heard), make
1315sure to repeat the process after toggling @code{debug-on-error} on 1330sure to repeat the process after turning on @code{debug-on-error} via
1316(via @kbd{M-x toggle-debug-on-error}). This normally produces a 1331@kbd{M-x toggle-debug-on-error}. This normally produces a backtrace
1317backtrace of the error that should also be attached to the bug report. 1332of the error that should also be attached to the bug report.
1333
1334@item
1335Include a description of how the maintainer should obtain, install,
1336and configure the language server you used. Maintainers usually have
1337access to GNU/Linux systems, though not necessarily the distribution
1338that you may be using. If possible, try to replicate the problem with
1339the C/C@t{++} or Python servers, as these are very easy to install.
1318 1340
1319@item 1341@item
1320An explanation of how to obtain, install, and configure the language 1342Describe how to setup a @emph{minimal} project directory where Eglot
1321server you used. If possible, try to replicate the problem with the 1343should be started for the problem to happen. Describe each file's
1322C/C@t{++} or Python servers, as these are very easy to install. 1344name and its contents. Alternatively, you can supply the address of a
1345public Git repository.
1323 1346
1324@item 1347@item
1325A description of how to setup the @emph{minimal} project (one or two 1348Include versions of the software used. The Emacs version can be
1326files and their contents) where the problem happens. 1349obtained with @kbd{M-x emacs-version}.
1350
1351It's also essential to include the version of ELPA packages that are
1352explicitly or implicitly loaded. The optional but popular Company or
1353Markdown packages are distributed as GNU ELPA packages, not to mention
1354Eglot itself in some situations. Some major modes (Go, Rust, etc.)
1355are provided by ELPA packages. It's sometimes easy to miss these,
1356since they are usually implicitly loaded when visiting a file in that
1357language.
1358
1359ELPA packages usually live in @code{~/.emacs.d/elpa} (or what is in
1360@code{package-user-dir}). Please show the listing of files in that
1361directory as well.
1327 1362
1328@item 1363@item
1329A recipe to replicate the problem with @emph{a clean Emacs run}. This 1364Include a recipe to replicate the problem with @emph{a clean Emacs
1330means @kbd{emacs -Q} invocation or a very minimal (no more that 10 1365run}. This means @kbd{emacs -Q -f package-initialize} invocation
1331lines) @file{.emacs} initialization file. @code{eglot-ensure} and 1366which starts Emacs with no configuration and initializes the ELPA
1332@code{use-package} calls are generally @emph{not} needed. 1367packages. A very minimal (no more that 10 lines) @file{.emacs}
1368initialization file is also acceptable and good means to describe
1369changes to variables.
1370
1371There is usually no need to include @kbd{require} statements in the
1372recipe, as Eglot's functionality uses autoloads.
1373
1374Likewise, there is rarely the need to use things like
1375@code{use-package} or @code{eglot-ensure}. This just makes the recipe
1376harder to follow. Prefer setting variables with @code{setq} and
1377adding to hooks with @code{add-hook}. Prefer starting Eglot with
1378@code{M-x eglot}.
1333 1379
1334@item 1380@item
1335Make sure to double check all the above elements and re-run the 1381Make sure to double check all the above elements and re-run the recipe
1336recipe to see that the problem is reproducible. 1382to see that the problem is reproducible. Following the recipe should
1383produce event transcript and error backtraces that are exactly the
1384same or very similar to the ones you included. If the problem only
1385happens sometimes, include this information in your bug report.
1337@end enumerate 1386@end enumerate
1338 1387
1339Please keep in mind that some problems reported against Eglot may 1388Please keep in mind that some problems reported against Eglot may
1340actually be bugs in the language server or the Emacs feature/package 1389actually be bugs in the language server or the Emacs feature/package
1341that used Eglot to communicate with the language server. 1390that used Eglot to communicate with the language server. Eglot is, in
1391many cases, just a frontend to that functionality.
1342 1392
1343@node GNU Free Documentation License 1393@node GNU Free Documentation License
1344@appendix GNU Free Documentation License 1394@appendix GNU Free Documentation License
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index 3ec07fb4a50..10fc4c85c7b 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -1372,10 +1372,9 @@ among, with differing advantages and disadvantages. The variable
1372to (as long as @code{idlwave-help-use-assistant} is not set). This 1372to (as long as @code{idlwave-help-use-assistant} is not set). This
1373function is used to set the variable @code{browse-url-browser-function} 1373function is used to set the variable @code{browse-url-browser-function}
1374locally for IDLWAVE help only. Customize the latter variable to see 1374locally for IDLWAVE help only. Customize the latter variable to see
1375what choices of browsers your system offers. Certain browsers like 1375what choices of browsers your system offers. Certain browsers like EWW
1376@code{w3} (bundled with many versions of Emacs) and @code{w3m} 1376(@pxref{Top, EWW,, eww, The Emacs Web Wowser Manual}) are run within Emacs,
1377(@uref{http://emacs-w3m.namazu.org/}) are run within Emacs, and use 1377and use Emacs buffers to display the HTML help. This can be convenient,
1378Emacs buffers to display the HTML help. This can be convenient,
1379especially on small displays, and images can even be displayed in-line 1378especially on small displays, and images can even be displayed in-line
1380on newer Emacs versions. However, better formatting results are often 1379on newer Emacs versions. However, better formatting results are often
1381achieved with external browsers, like Mozilla. IDLWAVE assumes any 1380achieved with external browsers, like Mozilla. IDLWAVE assumes any
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 3b5ba3b1390..6f14fc875f4 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -1247,6 +1247,7 @@ syntax requires a leading volume (share) name, for example:
1247 1247
1248@item @option{dav} 1248@item @option{dav}
1249@item @option{davs} 1249@item @option{davs}
1250@cindex WebDAV
1250@cindex method @option{dav} 1251@cindex method @option{dav}
1251@cindex method @option{davs} 1252@cindex method @option{davs}
1252@cindex @option{dav} method 1253@cindex @option{dav} method