Jump to content

# Language Server Protocol

From ArchWiki

Related articles

- lint
- Debug adapter protocol

Language Server Protocol (LSP) defines the protocol used between an editor or IDE and a language server that provides language features like auto complete, go to definition, find all references.

Language servers can be installed natively using the following packages. If your programming language is not in the list, search in the Arch official repositories or in the AUR.

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: When multiple packages are listed in one table cell, it is not clear if users should install all of them to get LSP for given language, or choose one of the alternatives. For example, the LSPs for Python have very different features, some are alternatives and some complement each other. (Discuss in Talk:Language Server Protocol)

This article or section needs expansion.

Reason: Some links in the "LSP config for text editors" column (e.g. clangd) do not provide any config. (Discuss in Talk:Language Server Protocol)

Language | LSP config for text editors | LSP server package
--- | --- | ---
Ada/SPARK | als | ada_language_serverAUR
Angular | angularls |
Arduino | arduino-language-server | arduino-language-server
Ansible | ansible-language-server | ansible-language-server
Astrojs | astrojs-language-server | astrojs-language-serverAUR
Awk | awk-language-server | awk-language-serverAUR
Autotools | autotools | autotools-language-serverAUR
BASH | bashls | bash-language-server
Bicep | bicep | bicep-langserver-binAUR
C, C++, Objective-C | ccls, sourcekit, clangd | ccls, swift-languageAUR, clang
C# | C# | omnisharp-roslynAUR
Clojure | clojure_lsp | clojure-lsp-binAUR
CMake | cmake, neocmakelsp | cmake-language-serverAUR, neocmakelspAUR
CodeQL | codeqlls | codeqlAUR
CSS, LESS, SASS | cssls, tailwindcss | vscode-css-languageserver, tailwindcss-language-server
Crystal | crystalline | crystallineAUR
D | serve-d | serve-dAUR
Dart | dartls | dart
Dhall | dhall-lang | dhall-lsp-server
Dockerfile, Dockercompose | dockerls, compose-language-service | dockerfile-language-serverAUR, nodejs-compose-language-serviceAUR
Elixir | elixirls | elixir-lsAUR
Elm | elmls | elm-language-serverAUR
Erlang | elp, erlangls | elpAUR, erlang_lsAUR
Flow | flow | flowAUR
Fortran | fortls, fortran-language-server | fortlsAUR, fortran-language-serverAUR
F# | fsautocomplete, fsharp-language-server | fsharp-language-serverAUR, fsautocomplete-binAUR
GDScript | gdscript | godot
General purpose | diagnosticls, efm | diagnostic-languageserverAUR, efm-langserverAUR
GOlang | gopls | gopls
GraphQL | graphql | graphql-lspAUR
Groovy | groovyls | groovy-language-server-gitAUR
Haskell | hls | haskell-language-server
Haxe | haxe_language_server |
HTML | html | vscode-html-languageserver
JavaScript | denols | deno
Java | java_language_server, jdtls | java-language-serverAUR, jdtlsAUR
JSON | jsonls | vscode-json-languageserver
Julia | julials |
Kotlin | kotlin_language_server | kotlin-language-serverAUR
Lean | lean3ls | lean-language-serverAUR
Lua | lua_ls | lua-language-server
Markdown | marksman | marksman
Nim | nimls | nimlspAUR
nix | nil | nil-gitAUR
OCaml, Reason | ocamllsp | ocaml-lsp-gitAUR
OmniSharp | omnisharp | omnisharp-roslynAUR
Perl | perlls | perl-perl-languageserverAUR
PHP | phpactor, intelephense | phpactorAUR, nodejs-intelephenseAUR
PowerShell | powershell_es | powershell-editor-servicesAUR
PureScript | purescriptls | purescript-language-serverAUR
Python | pylsp, basedpyright, pyright, jedi_language_server, ruff | python-lsp-server, pyright, basedpyrightAUR, jedi-language-server, ruff
R | r_language_server | r-languageserverAUR
Racket | racket_langserver |
ReScript | rescriptls | rescript-lsAUR
Rome | biome | biome
Rust | rust_analyzer | rust-analyzer
Ruby | solargraph, sorbet | ruby-solargraphAUR, ruby-sorbet-runtime
Scala | metals | metalsAUR
SQL | sqlls | sqlsAUR, sql-language-serverAUR
Svelte | svelte | svelte-language-server
SystemVerilog | svls | svlsAUR
Terraform | terraformls | terraform-lsAUR
(La)TeX | texlab | texlab
TypeScript | tsserver, denols | typescript-language-server, deno
Typst | tinymist | tinymist
Vala | vala_ls | vala-language-serverAUR
Vim | vimls | vim-language-serverAUR
V | v-analyzer | v-analyzer-binAUR
Vue | volar | vue-language-server
YAML | yamlls | yaml-language-server
Zig | zls | zls

## See also

- Wikipedia:Language Server Protocol
- Comprehensive list of LSP configs for neovim
- langserver A community-driven source of knowledge for Language Server Protocol implementations

Category:

- Programming languages

Hidden categories:

- Pages or sections flagged with Template:Style
- Pages or sections flagged with Template:Expansion

Language Server Protocol
Add topic