lsp-mode
lsp-mode copied to clipboard
[Feature] better lsp-describe-session
- Replace tree-widget with org-mode text - it will be much easier to work with.
- Include the following info:
- Presence of the packages lsp-ui/yasnippet/company-lsp/etc + their state (enabled/disabled)
- Status of each server - which path will be used, which mode will be enabled in, path to the binary and so on.
- workspace folders + what we currently have
- blacklisted folders
- server-id -> folder association
- Anything else that could be useful for diagnostics.
IMO, a package like ewoc
(See https://www.gnu.org/software/emacs/manual/html_node/elisp/Abstract-Display.html) might be useful here.
Thanks for pointing this package, I might have used it in dap-mode for the templates.
One more functionality that we might have is to have a source block which installs the server, like that:
#+BEGIN_SRC bash
pip install python-language-server[all]
#+END_SRC
I was just trying to setup lsp-pyls earlier, and was hoping there would be some diagnostics on what executables where being found/missing. I did see a brief message in on of the log buffers eventually, but it was far from obvious (I'm not a user of lsp-mode
in general, so I'm a foreigner here).
I think it would be useful to make it clear what executables are missing, and when found, display the full paths to them. For example, it was using a python 2 pyls server from one of my environments, when I expected another. Something like flycheck-verify-setup
would be fantastic.
org-mode would be a much more natural choice. I just spent ten minutes experimenting to figure out that one expands a node with the left mouse button, of all things.
Another desired functionality of lsp-describe-session
:
- Stop running servers
When I work on Java/Kotlin project, running two servers at the same time takes a lot of resources. Stopping servers from
*lsp session*
buffer would make resource management easier it these situations - Remove stopped sessions
Sometimes
bash-ls
would create session in my/tmp
directory or even in mounted volume. This would provide a way to remove these sessions from list
Also when a server process is listed in the session buffer multiple times due to having multiple workspaces connected to it, the same group of files should not be listed under every time it appears in the *lsp session*
buffer. It's really quite confusing to have files from project A shown under a hierarchy for project B.
Another desired functionality would be to be able to filter to only show running workspaces. This is useful when only a few (say 5) workspaces are running while the session has many (say 500) folders, because those running workspaces may be scattered anywhere in the list and thus easy to miss.
It would also be an improvement if there was a straightforward way to find out what the green/yellow/red colors mean