Open
Description
@stapelberg and I plan to work together to make Emacs+eglot smoother, faster, and better documented.
Some specific items (feel free to add or suggest more):
- Code Lenses: support them, or, better, make gopls move all those features to Code Actions, which are better anyway.
- Add a nice "run this test" UI (see x/tools/gopls: better "run this test" UX #67400 and feature: eglot-execute to optionally redirect executeCommand progress messages to a compilation-mode buffer joaotavora/eglot#1402)
- Approach 1: output certain executeCommands to a compilation-mode buffer. Needs no LSP changes initially, just a list of command IDs to treat this way; ultimately the Command would provide this information. Prototype implemented.
- Approach 2: express it entirely within the WorkDoneProgress mechanism: change the server to indicate that a given progress stream should be directed to a buffer, and formalize the final success/failure protocol.
- support
didChangeWatchedFiles
for unopened files on macOS (see x/tools/gopls: unable to organize imports after go mod tidy / go get #62330)- This Emacs bug report explains that the underlying cause is a limitation of using kqueue on macOS: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51146 — possibly contributing fsevents support to Emacs’s filenotify package would fix the problem.
- fix
didChangeWatchedFiles
to work recursively? The underlying Emacsfilenotify
package does not watch directories recursively, but gopls’s glob pattern requests recursive matching. - update go-mode.el with various nice short
go-*
helper commands for features otherwise accessible though more cumbersome eglot commands (e.g. go-doc, go-test, go-freesymbols, etc); see add go-* shortcuts for various hard-to-find eglot operations dominikh/go-mode.el#436 - Expose textDocument/selectionRange as an interactive command joaotavora/eglot#1220 (comment)
- Awaiting approval to merge the new code.
- Fix bug in
(global-set-key (kbd "s-<mouse-1>") #'xref-find-definitions-at-mouse)
.- Already fixed in Emacs 30; see https://lists.gnu.org/archive/html/bug-gnu-emacs/2024-06/msg00550.html
- Ensure the gopls emacs documentation is accurate, and add useful gopls-specific tips and tricks.
- use LSP for organize-imports + formatting, not goimports command (but see x/tools/gopls: support Format and CodeAction(source.organizeImports) on generated files #73959)