-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Open
Labels
FrictionNuisances that make good candidates for our "friction" fix-it weeksNuisances that make good candidates for our "friction" fix-it weeksToolsThis label describes issues relating to any tools in the x/tools repository.This label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.Issues related to the Go language server, gopls.
Milestone
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
didChangeWatchedFilesfor 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
didChangeWatchedFilesto work recursively? The underlying Emacsfilenotifypackage 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)
cagedmantis, stapelberg, siburu, jidicula, vikblom and 7 moregoncalvesnelson, jidicula, gmichokostas, panchoh and darshanime-d11jidicula, goncalvesnelson, adamroyjones, petergardfjall, gmichokostas and 4 more
Metadata
Metadata
Assignees
Labels
FrictionNuisances that make good candidates for our "friction" fix-it weeksNuisances that make good candidates for our "friction" fix-it weeksToolsThis label describes issues relating to any tools in the x/tools repository.This label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.Issues related to the Go language server, gopls.