[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Considerations for adding additional default LSP-servers to eglot
From: |
Jostein Kjønigsen |
Subject: |
Considerations for adding additional default LSP-servers to eglot |
Date: |
Sat, 25 Jan 2025 12:00:31 +0100 |
Hey everyone.
I think adding eglot/LSP to emacs has been one of the most powerful and transformative changes for OOB usefulness when using Emacs for programming.
LSP has clearly been a popular protocol and almost all languages worth mentioning has a LSP server now. The current list of LSP servers maintained in eglot is already impressive, but I find myself needing to augment it with servers not yet included.
Common for those that are included is that they are installed on the system path, and can be invoked directly from Emacs without any complicated arguments, or needing to resolve the path of the language server itself.
Common for those I have augmented the list with is the opposite: They are not typically installable in a regular single-tool, single-path like matter. They often require complicated arguments.
The way I usually install them is by installing VSCode, installing the relevant extensions there (which bundles the LSP servers), and then reuse those LSP servers from Emacs.
Entries for these servers typically look like those below:
(powershell-mode . ("pwsh"
"-OutputFormat" "Text"
"-File"
,(car (file-expand-wildcards
(substitute-in-file-name
"$HOME/.vscode/extensions/ms-vscode.powershell-*/modules/PowerShellEditorServices/Start-EditorServices.ps1")))
"-Stdio"
"-HostVersion" "1.0"
"-HostName" "Emacs"
"-HostProfileId" "Emacs.Eglot"
"-SessionDetailsPath" "/tmp/emacs"
"-BundledModulesPath"
,(car (file-expand-wildcards
(substitute-in-file-name
"$HOME/.vscode/extensions/ms-vscode.powershell-*/modules")))
))
(bicep-ts-mode . ("dotnet"
,(car (file-expand-wildcards
(substitute-in-file-name
"$HOME/.vscode/extensions/ms-azuretools.vscode-bicep-*/bicepLanguageServer/Bicep.LangServer.dll")))
))
My question is:
Would entries like this be accepted as patches in mainline Emacs? Or would the fact that they depend on other external software to be installed make it a no go?
--
Kind regards
Jostein Kjønigsen
- Considerations for adding additional default LSP-servers to eglot,
Jostein Kjønigsen <=