The LSP was created by Microsoft to define a common language for programming language analyzers to speak. Today, several companies have come together to support its growth, including Codenvy, Red Hat, and Sourcegraph, and the protocol is becoming supported by a rapidly growing list of editor and language communities. See below for details on and links to current client and server implementations.
For example, instead of the traditional practice of building a Python plugin for VSCode, a Python plugin for Sublime Text, a Python plugin for Vim, a Python plugin for Sourcegraph, and so on, for every language, LSP allows language communities to concentrate their efforts on a single, high performing language server that can provide code completion, hover tooltips, jump-to-definition, find-references, and more, while editor and client communities can concentrate on building a single, high performing, intuitive and idiomatic extension that can communicate withany language server to instantly provide deep language support.
| Language | Maintainer | Repository | Code completion | Hover | Jump to def | Workspace symbols | Find references | Diagnostics | Additional capabilities |
|---|
| ActionScript3 | Josh Tynjala | github.com/BowlerHatLLC/vscode-nextgenas/tree/master/language-server | | | | | | | |
|---|
| Ada | AdaCore | github.com/AdaCore/ada_language_server | | | | | | | |
|---|
| ANTLR | Ken Domino | github.com/kaby76/AntlrVSIX | | | | | | | Semantic highlighting, rename, reformat, refactoring, ANTLR 2/3/4, Bison, W3C EBNF |
|---|
| Apache Camel | Camel Tooling | github.com/camel-tooling/camel-language-server | | | | | | | |
|---|
| Ballerina | ballerina.io | github.com/ballerina-platform/ballerina-lang/tree/master/language-server | | | | | | | |
|---|
| Bash | Mads Hartmann | github.com/bash-lsp/bash-language-server | | | | | | | |
|---|
| BibTeX | Andrew Pilsch | https://github.com/oncomouse/citation-langserver | | | | | | |
|---|
| C# | OmniSharp | github.com/OmniSharp/csharp-language-server-protocol | | | | | | | - Runs tests
- Quick fixes
- Debug profiles
|
|---|
| C# | CXuesong | github.com/CXuesong/LanguageServer.NET | | | | | | | |
|---|
| C# | Saulius Menkevičius | github.com/razzmatazz/csharp-language-server | | | | | | | - suppport for go-to-definition in metadata (on imported dlls)
|
|---|
| C / C++ | LLVM Team | clang-tools-extra/trunk/clangd | | | | | | | |
|---|
| C / C++ | Jacob Dufault | github.com/cquery-project/cquery | | | | | | | |
|---|
| C / C++ | MaskRay | github.com/MaskRay/ccls | | | | | | | |
|---|
| Clojure | snoe | github.com/snoe/clojure-lsp | | | | | | | |
|---|
| Common Workflow Language (CWL) | Seven Bridges/Rabix | Rabix/Benten | | | | | | | - Outline view
- Javascript expression test evaluation
- Preview of workflow graph
- Preview of linked files
|
|---|
| Coq | Coq LSP Team | coq-lsp | | | | | | | - Outline view
- Extensions: info panel request, file progress notification, performance report
|
|---|
| Cucumber (Gherkin) | Cucumber core team | cucumber/language-server | | | | | | | - Autocomplete steps
- Go to step definition
- Generate step definition from snippets
- Syntax highlighting (semantic tokens)
- Diagnostics for undefined steps
- Formatting
- Outline view
|
|---|
| IBM Enterprise COBOL for z/OS | IBM | marketplace.visualstudio.com/items?itemName=IBM.zopeneditor | | | | | | | - Outline view
- Previewing of included copybooks on hover
- Navigate to copybooks
- Code template snippets
- Refactoring such as "rename symbol"
- Variable completion
|
|---|
| IBM Enterprise COBOL for z/OS | Broadcom | github.com/eclipse/che-che4z-lsp-for-cobol | | | | | | | - Automatic copybook resolution
- Previewing of included copybooks on hover
- COBOL Control Flow integration
- Outline view
- Code snippets support
- Support for DB2, CICS and IDMS statements in Cobol
- Subroutines support
|
|---|
| CSS/LESS/SASS | Microsoft | github.com/Microsoft/vscode/tree/main/extensions/css | | | | | | | |
|---|
| CSS/LESS/SASS | DeltaEvo | github.com/vscode-langservers/vscode-css-languageserver-bin | | | | | | | |
|---|
| D | WebFreak001 | github.com/Pure-D/serve-d | | | | | | | |
|---|
| Dart | Dart Team | github.com/dart-lang/sdk | | | | | | | |
|---|
| Delphi | Embarcadero | Proprietary (DelphiLSP) | | | | | | | - No arbitrary code execution2
- Multi-process architecture
|
|---|
| Deno | Deno Team | github.com/denoland/deno/tree/master/cli/lsp | | | | | | | |
|---|
| Dockerfile | Remy Suen | github.com/rcjsuen/dockerfile-language-server-nodejs | | | | | | | |
|---|
| DreamMaker | SpaceManiac | github.com/SpaceManiac/SpacemanDMM/tree/master/crates/dm-langserver | | | | | | | - No arbitrary code execution2
|
|---|
| Erg | Shunsuke Shibayama and contributors | github.com/erg-lang/erg/tree/main/crates/els | | | | | | | |
|---|
| Erlang | Erlang/OTPandVlad Dumitrescu | github.com/erlang/sourcer | | | | | | | |
|---|
| Erlang | Roberto Aloi,Juan Facorro andother contributors | github.com/erlang-ls/erlang_ls | | | | | | | |
|---|
| Elixir | Elixir LSP | github.com/elixir-lsp/elixir-ls | | | | | | | |
|---|
| Elm | Elm Tooling | github.com/elm-tooling/elm-language-server | | | | | | | - SymbolDescriptor extension4
|
|---|
| F# | Ionide | github.com/fsharp/FsAutoComplete/ | | | | | | | |
|---|
| Fennel | XeroOl | git.sr.ht/~xerool/fennel-ls | | | | | | | - No arbitrary code execution2
|
|---|
| fluent-bit | Seonghyeon Cho | github.com/sh-cho/fluent-bit-lsp | | | | | | | |
|---|
| Flux | InfluxData | github.com/influxdata/flux-lsp | | | | | | | |
|---|
| Fortran | Chris Hansen | github.com/hansec/fortran-language-server | | | | | | | |
|---|
| Fuzion | Tokiwa Software GmbH | github.com/tokiwa-software/fuzion-lsp-server | | | | | | | Renaming, Outline, Signature Help |
|---|
| Gauge | Gauge | github.com/getgauge/gauge | | | | | | | |
|---|
| Gleam | Louis Pilfold | github.com/gleam-lang/gleam | | | | | | | |
|---|
| GLSL | Sven-Hendrik Haase | github.com/svenstaro/glsl-language-server | | | | | | | |
|---|
| GoArchived | Sourcegraph | github.com/sourcegraph/go-langserver | | | | | | | - No arbitrary code execution2
|
|---|
| Go | Go Team | github.com/golang/tools/tree/master/gopls | | | | | | | |
|---|
| Grain | Grain Team | github.com/grain-lang/grain | | | | | | | Code formatting |
|---|
| GraphQL | GraphQL Foundation | github.com/graphql/graphiql | | | | | | | |
|---|
| Groovy | Prominic | github.com/prominic/groovy-language-server | | | | | | | |
|---|
| Groovy | Palantir | github.com/palantir/groovy-language-server | | | | | | | |
|---|
| Groovy | VsCode Groovy Lint | github.com/nvuillam/vscode-groovy-lint/tree/master/server | | | | | | | Code Formatting Code refactoring (auto-fix errors) |
|---|
| Hack | HHVM Team | github.com/facebook/hhvm | | | | | | | |
|---|
| Haskell | Haskell | https://github.com/haskell/haskell-language-server | | | | | | | |
|---|
| Haxe | Haxe Foundation | github.com/vshaxe/haxe-language-server | | | | | | | |
|---|
| Helm (Kubernetes) | qvalentin | github.com/mrjosh/helm-ls | | | | | | | |
|---|
| IBM High Level Assembler | Broadcom | github.com/eclipse/che-che4z-lsp-for-hlasm | | | | | | | |
|---|
| IBM High Level Assembler | IBM | marketplace.visualstudio.com/items?itemName=IBM.zopeneditor | | | | | | | - Outline view
- Previewing of copybooks on hover
- Navigate to copybooks
|
|---|
| HTML | Microsoft | github.com/Microsoft/vscode/tree/main/extensions/html | | | | | | | |
|---|
| Imandra Protocol Language | Aesthetic Integration | https://github.com/AestheticIntegration/ipl-vscode | | | | | | | |
|---|
| Java | Eclipse Foundation,Red Hat,Microsoft | github.com/eclipse/eclipse.jdt.ls | | | | | | | |
|---|
| Java | georgewfraser | github.com/georgewfraser/vscode-javac | | | | | | | |
|---|
| Java | Apache NetBeans | marketplace.visualstudio.com/items?itemName=ASF.apache-netbeans-java | | | | | | | - Gradle, Maven, and mx support
- Polyglot and Native Image debugging
- OpenJDK sources support + jtreg
|
|---|
| JavaScript | Typefox | github.com/theia-ide/typescript-language-server | | | | | | | |
|---|
| JavaScript | quick-lint-js | github.com/quick-lint/quick-lint-js | | | | | | | |
|---|
| JavaScript (Flow) | Flowtype | github.com/flowtype/flow-for-vscode | | | | | | | |
|---|
| JSON | Microsoft | github.com/microsoft/vscode/tree/main/extensions/json-language-features/server | | | | | | | |
|---|
| JSON Schema | Microsoft | github.com/microsoft/vscode/tree/main/extensions/json-language-features/server | | | | | | | |
|---|
| JSON-LD | Arthur Vercruysse | github.com/ajuvercr/jsonld-lsp | | | | | | | |
|---|
| Jsonnet | Grafana Labs | github.com/grafana/jsonnet-language-server | | | | | | | |
|---|
| JS/TS + PHP + Python + Java | SonarSource | github.com/SonarSource/sonarlint-language-server | | | | | | | |
|---|
| Julia | David Anthoff | github.com/JuliaEditorSupport/LanguageServer.jl | | | | | | | |
|---|
| Kotlin | fwcd | github.com/fwcd/KotlinLanguageServer | | | | | | | |
|---|
| Langium | TypeFox | github.com/langium/langium | | | | | | | Tool for implementing a language server in any language |
|---|
| LanguageTool | Julian Valentin | github.com/valentjn/ltex-ls | | | | | | | Checking spelling and grammar in markup languages such as LaTeX, Markdown, XHTML, … |
|---|
| LaTeX | Eric Förster | github.com/efoerster/texlab | | | | | | | |
|---|
| Lua | Alloyed | github.com/Alloyed/lua-lsp | | | | | | | |
|---|
| Lua | tangzx | github.com/EmmyLua/EmmyLua-LanguageServer | | | | | | | |
|---|
| Lua | LuaLS | github.com/LuaLS/lua-language-server | | | | | | | |
|---|
| Markdown | Artem Pianykh | github.com/artempyanykh/marksman | | | | | | | - Support for wiki-links
- Table of Contents generation
- Single-file mode
|
|---|
| MOCA | Danny Glass | github.com/mrglassdanny/moca-language-server | | | | | | | Formatting, Semantic Highlighting, Signature Help, MOCA Client Capabilities |
|---|
| Nextflow | Seqera | github.com/nextflow-io/language-server | | | | | | | Formatting, rename, semantic highlighting, visualization of code as workflow diagrams |
|---|
| Odin | Daniel Gavin | https://github.com/DanielGavin/ols | | | | | | | |
|---|
| OCaml | OCaml | github.com/ocaml/ocaml-lsp | | | | | | | |
|---|
| Nim | PMunch | github.com/PMunch/nimlsp | | | | | | | |
|---|
| openVALIDATION | openVALIDATION | github.com/openvalidation/ov-language-server | | | | | | | |
|---|
| Perl | Gerald Richter | github.com/richterger/Perl-LanguageServer | | | | | | | - Installable via CPAN - https://metacpan.org/pod/Perl::LanguageServer
- Implements Debug Adaptor Protocol
|
|---|
| Perl | Brian Scannell | github.com/bscan/PerlNavigator | | | | | | | |
|---|
| Perl | Marc Reisner | github.com/FractalBoy/perl-language-server | | | | | | | |
|---|
| PHP | Felix Becker | github.com/felixfbecker/php-language-server | | | | | | | - No arbitrary code execution2
|
|---|
| PHP | Dan Leech | github.com/phpactor/phpactor | | | | | | | - No arbitrary code execution2
- Code Action
- Document Highlight
- Goto Implementation
- Document Symbol
- Has custom extensions
|
|---|
| PHP | Tom Gerrits | gitlab.com/Serenata/Serenata | | | | | | | - No arbitrary code execution2
- Has custom extensions
|
|---|
| PHP | Hvy Industries | github.com/HvyIndustries/crane/blob/master/server | | | | | | | |
|---|
| PHP | Matt Brown | github.com/vimeo/psalm | | | | | | | - No arbitrary code execution2
|
|---|
| IBM Enterprise PL/I for z/OS | IBM | marketplace.visualstudio.com/items?itemName=IBM.zopeneditor | | | | | | | - Outline view
- Previewing of include files on hover
- Navigate to include files
- Refactoring such as "rename symbol"
- Variable completion
|
|---|
Polyglot (Java, JavaScript, Python, R, Ruby, …) | GraalVM | marketplace.visualstudio.com/items?itemName=oracle-labs-graalvm.graalvm | | | | | | | - Supports polyglot programming
- Based on dynamic run-time data
- Supports delegation to other language servers
|
|---|
| PowerShell | Microsoft | github.com/PowerShell/PowerShellEditorServices | | | | | | | |
|---|
| Puppet | Lingua Pupuli | github.com/lingua-pupuli/puppet-editor-services | | | | | | | |
|---|
| PureScript | Nicholas Wolverson | github.com/nwolverson/purescript-language-server | | | | | | | |
|---|
| Python | Microsoft | github.com/microsoft/pyright | | | | | | | |
|---|
| PythonArchived | Microsoft | github.com/Microsoft/python-language-server | | | | | | | |
|---|
| PythonArchived | Sourcegraph | https://github.com/sourcegraph/python-langserver | | | | | | | - Automatic dependency management1
- No arbitrary code execution2
|
|---|
| Python | python-lsp | github.com/python-lsp/python-lsp-server | | | | | | | |
|---|
| Python | Samuel Roeca | github.com/pappasam/jedi-language-server | | | | | | | |
|---|
| Q#Archived | Microsoft | github.com/microsoft/qsharp-compiler | | | | | | | |
|---|
| R | REditorSupport | github.com/REditorSupport/languageserver | | | | | | | Code Formatting |
|---|
| Racket | Conor Finegan | github.com/jeapostrophe/racket-langserver | | | | | | | |
|---|
| Raku | Brian Scannell | github.com/bscan/RakuNavigator | | | | | | | |
|---|
| Red | bitbegin | github.com/bitbegin/redlangserver | | | | | | | |
|---|
| reStructuredText | swyddfa | github.com/swyddfa/esbonio | | | | | | | |
|---|
| Rego | Styra | github.com/StyraInc/regal | | | | | | | Goto Definition Request, Code Actions, Folding Range, Formatting, Inlay Hints |
|---|
| Rell | ChromaWay | gitlab.com/chromaway/core-tools/rell-toolbox/ | | | | | | | Goto Definition, Code Actions, Code Formatting, Signature Help, Rename, Semantic highlighting, Outline view |
|---|
| Robot Framework | Robocorp | github.com/robocorp/robotframework-lsp | | | | | | | Code Formatting |
|---|
| Ruby | Fred Snyder | github.com/castwide/solargraph | | | | | | | |
|---|
| Ruby | Shopify | github.com/Shopify/ruby-lsp | | | | | | | |
|---|
| RustArchived | Nick Cameron and the Rust community | github.com/rust-lang/rls | | | | | | | - Automatic dependency management1
|
|---|
| Rust | Aleksey Kladov and contributors | github.com/rust-analyzer/rust-analyzer | | | | | | | - Automatic dependency management1
|
|---|
| Scala | Iulian Dragos | github.com/dragos/dragos-vscode-scala | | | | | | | |
|---|
| Scala | Scalameta | github.com/scalameta/metals | | | | | | | - Automatic dependency management1
- Tree View Protocol5
- Decoration Protocol6
|
|---|
| SPARQL | Ioannis Nezis | github.com/IoannisNezis/Qlue-ls | | | | | | | |
|---|
| SPARQL | Stardog Union | github.com/stardog-union/stardog-language-servers/tree/master/packages/sparql-language-server | | | | | | | - No arbitrary code execution2
|
|---|
| Smalltalk/Pharo | Benoît Verhaeghe | github.com/badetitou/Pharo-LanguageServer | | | | | | | Code Formatting, Signature Help |
|---|
| Snyk | Snyk | https://github.com/snyk/snyk-ls | | | | | | | Automatic download of Snyk CLI with custom notification of path to binary, diagnostic workspace scans over all workspace folders on startup. Supports Snyk Code, Snyk IaC and Snyk Open Source. Authentication to Snyk is supported and token returned via custom notification. |
|---|
| Standard ML | Ariel Davis | Millet | | | | | | | Code formatting |
|---|
| Swift & C-family | Apple Inc | github.com/apple/sourcekit-lsp | | | | | | | |
|---|
| Systemtap | Red Hat | Systemtap LSP | | | | | | | |
|---|
| SystemVerilog | dalance | github.com/dalance/svls | | | | | | | |
|---|
| Terraform | Julio Tain Sueiras | github.com/juliosueiras/terraform-lsp | | | | | | | - Dynamic completion from provider binary
|
|---|
| Terraform | Hashicorp | github.com/hashicorp/terraform-ls | | | | | | | |
|---|
| TTCN-3 | Nokia | github.com/nokia/ntt | | | | | | | - Automatic dependency management1
|
|---|
| Turtle | Stardog Union | github.com/stardog-union/stardog-language-servers/tree/master/packages/turtle-language-server | | | | | | | - No arbitrary code execution2
|
|---|
| TypeScript | TypeFox | github.com/theia-ide/typescript-language-server | | | | | | | |
|---|
| V | vlang | https://github.com/vlang/v-analyzer | | | | | | | |
|---|
| Vala | vala-lang | https://github.com/vala-lang/vala-language-server | | | | | | | |
|---|
| Veryl | dalance | github.com/dalance/veryl/tree/master/crates/languageserver | | | | | | | Formatting, Semantic highlighting |
|---|
| VimScript | iamcco | github.com/iamcco/vim-language-server | | | | | | | |
|---|
| Wikitext | Bhsd | github.com/bhsd-harry/vscode-extension-wikiparser | | | | | | | - Color decorator
- Document link
- Rename
- Folding
- Outline view
- Signature help
- Inlay hint
|
|---|
| XML | IBM | github.com/microclimate-devops/xml-language-server | | | | | | | |
|---|
| XML | Red Hat andAngelo ZERR | github.com/angelozerr/lsp4xml | | | | | | | XML Schema validation/completion, Foldings, Rename element, Formatting, Document Link, Extensible to add custom completion, hover, etc |
|---|
| YAML | Red Hat | github.com/redhat-developer/yaml-language-server | | | | | | | |
|---|
| YANG | TypeFox | github.com/yang-tools/yang-lsp | | | | | | | |
|---|
| Xtext (Any Language) | TypeFox | github.com/eclipse/xtext-core | | | | | | | |
|---|
Work in Progress |
|---|
| CrystalArchived | Ryan L. Bell andcontributors | github.com/crystal-lang-tools/scry | | | | | | | |
|---|
| PlantUML | Patrick Dewey | github.com/ptdewey/plantuml-lsp | | | | | | | |
|---|
| reStructuredTextArchived | Lex Li | github.com/lextm/restructuredtext-antlr | | | | | | | |
|---|
| Ruby | Fumiaki MATSUSHIMA | github.com/mtsmfm/language_server-ruby | | | | | | | |
|---|
| TypeCobol | TypeCobol Team | TypeCobol Language Server | | | | | | | |
|---|
| WebAssemblyArchived | Darin Morrison | github.com/wasm-lsp/wasm-language-server | | | | | | | |
|---|
| Zig | zigtools andcontributors | github.com/zigtools/zls | | | | | | | |
|---|