lsp-mode
now have single entry pointlsp
for all language and based on the major mode starts the corresponding language servers.- Added
flymake
integration. lsp
automatically enables and configurescompany-lsp
,lsp-ui
,yasnippet
, orflymake
if they are present so no additional configuration is needed except installing the packages. That behavior could be disabled by settinglsp-auto-configure
tonil
.lsp-mode
ships with several predefined servers located inlsp-clients.el
which does not require additional package. For the more complex Language Servers likeEclipse JDT
,ccls
,cquery
andhaskell
we still require separate package due to relatively high code base.lsp-mode
handles automatically server failures by asking the user whether he/she wants to restart the server.- introduced new command
lsp-describe-session
which replaces the existing onelsp-capabilities
. The command lists the folders that are part of the workspace and the servers that are associated with the corresponding folder. lsp-mode
displays information about the running server and it’s status in the modeline.lsp-define-stdio-client
andlsp-define-tcp-client
are replaced withlsp-register-client
lsp
rely onprojectile
orproject.el
now only for suggesting project root. Once you open new file in a project and startlsp
it will provide several options(import project, blacklist project, select other directory root). Once you select a root it will be persisted and used for the next sessions.- support for multiple language servers per single file and workspace.
- changed
lsp-mode
settings to more sensible defaults. - Removed all synchronous calls from the server startup.
- Improved multi-folder support.
- added backends for: Bash, C++, CSS, Dart, Elixir, Fortran, Go, Groovy, HTML, Javascript/Typescript, Javascript/Typescript, Ocaml, PHP, Python, Ruby, Rust, Vue, Flow