[id="lang-support"]
== Languages/Language servers supported by `lsp-mode`

[cols=",,,,",options="header",]
|===
|Language |Language Server |Support |Installation command |Debugger

|Ada
|https://github.com/AdaCore/ada_language_server[ada_language_server]
|<<lsp-ada,Built-in>>
|https://github.com/AdaCore/ada_language_server#install[ada_language_server]
|

|Angular
|https://github.com/angular/vscode-ng-language-service/[vscode-ng-language-service]
|Built-in
|https://github.com/angular/vscode-ng-language-service/[vscode-ng-language-service]
|

|Bash
|https://github.com/mads-hartmann/bash-language-server[bash-language-server]
|Built-in
|`npm i -g bash-language-server`
|

|C++
|https://github.com/MaskRay/ccls[ccls]
|https://github.com/MaskRay/emacs-ccls[emacs-ccls]
|https://github.com/MaskRay/ccls[ccls]
|Yes (gdb or lldb)

|C++
|https://clang.llvm.org/extra/clangd.html[clangd]
|<<lsp-clangd,Built-in>>
|https://clang.llvm.org/extra/clangd.html[clangd]
|Yes (gdb or lldb)

|C++
|https://github.com/cquery-project/cquery[cquery]
|https://github.com/cquery-project/emacs-cquery[emacs-cquery]
|https://github.com/cquery-project/cquery[cquery]
|Yes (gdb or lldb)

|C#
|https://github.com/OmniSharp/omnisharp-roslyn[omnisharp-roslyn]
|<<lsp-csharp,Built-in>>
|https://github.com/OmniSharp/omnisharp-roslyn[omnisharp-roslyn]
|

|Clojure
|https://github.com/snoe/clojure-lsp[clojure-lsp]
|<<lsp-clojure,Built-in>>
|https://github.com/snoe/clojure-lsp[clojure-lsp]
|

|Crystal
|https://github.com/crystal-lang-tools/scry[scry]
|<<lsp-crystal,Built-in>>
|https://github.com/crystal-lang-tools/scry[scry]
|

|CSS/LessCSS/SASS/SCSS
|https://github.com/vscode-langservers/vscode-css-languageserver-bin[css]
|<<lsp-css,Built-in>>
|`npm install -g vscode-css-languageserver-bin`
|

|Dart
|https://github.com/natebosch/dart_language_server[dart_language_server]
|<<lsp-dart,Built-in>>
|`pub global activate dart_language_server`
|

|Elixir
|https://github.com/JakeBecker/elixir-ls[elixir-ls]
|<<lsp-elixir,Built-in>>
|https://github.com/JakeBecker/elixir-ls[elixir-ls]
|Yes

|Elm
|https://github.com/elm-tooling/elm-language-server[elmLS]
|<<lsp-elm,Built-in>>
| Clone the https://github.com/elm-tooling/elm-language-server[repository], run `npm install` in the root, then run https://www.typescriptlang.org/[tsc] in the server directory. Set <<lsp-elm-server-install-dir>> to wherever you cloned the repo.
|

|Erlang
|https://github.com/erlang-ls/erlang_ls[erlang_ls]
|<<lsp-erlang,Built-in>>
|https://github.com/erlang-ls/erlang_ls[erlang_ls]
|

|F#
|https://github.com/fsharp/FsAutoComplete[FsAutoComplete]
|<<lsp-fsharp,Built-in>>
|Clone the https://github.com/fsharp/FsAutoComplete[repository], run ./build.sh LocalRelease. Set lsp-fsharp-server-path, and lsp-fsharp-server-runtime. 
|

|Fortran
|https://github.com/hansec/fortran-language-server[fortran-language-server]
|<<lsp-fortran,Built-in>>
|`pip install fortran-language-server`
|Yes

|Go
|https://golang.org/x/tools/cmd/gopls[gopls]
|Built-in
|https://github.com/golang/tools/blob/master/gopls/doc/user.md#installation[gopls documentation]
|Yes

|Go
|https://github.com/saibing/bingo[bingo]
|Built-in
|https://github.com/saibing/bingo/wiki/Install[bingo]
|Yes

|Groovy
|https://github.com/palantir/language-servers[groovy-language-server]
|<<lsp-groovy,Built-in>>
|https://github.com/palantir/language-servers[groovy-language-server]
|

|Hack
|https://docs.hhvm.com/hhvm/[hhvm]
|<<lsp-hack,Built-in>>
|https://docs.hhvm.com/hhvm/installation/introduction[hhvm]
|

|HTML
|https://github.com/vscode-langservers/vscode-html-languageserver[html]
|<<lsp-html,Built-in>>
|`npm install -g vscode-html-languageserver-bin`
|

|Lua
|https://github.com/EmmyLua/EmmyLua-LanguageServer[EmmyLua]
|<<Built-in>>
|https://github.com/emacs-lsp/lsp-mode/wiki/Install-EmmyLua-Language-server[Instructions]
|

|Haskell
|https://github.com/haskell/haskell-ide-engine[IDE engine]
|https://github.com/emacs-lsp/lsp-haskell[lsp-haskell]
|https://github.com/haskell/haskell-ide-engine[IDE engine]
|

|Java
|https://github.com/eclipse/eclipse.jdt.ls[Eclipse JDT LS]
|https://github.com/emacs-lsp/lsp-java[lsp-java]
|https://github.com/emacs-lsp/lsp-java[lsp-java]
|Yes

|JavaScript/TypeScript
|https://github.com/theia-ide/typescript-language-server[typescript-language-server]
(recommended)
|<<lsp-typescript,Built-in>>
|`npm i -g typescript-language-server; npm i -g typescript`
|Yes (Firefox/Chrome)

|JavaScript/TypeScript
|https://github.com/sourcegraph/javascript-typescript-langserver[javascript-typescript-stdio]
|<<lsp-typescript-javascript,Built-in>>
|`npm i -g javascript-typescript-langserver`
|Yes (Firefox/Chrome)

|JavaScript Flow
|https://flow.org[flow] (add-on if working on a Flow file)
|<<lsp-flow,Built-in>>
|https://flow.org[flow]
|Yes (Firefox/Chrome)

|Julia
|https://github.com/non-Jedi/lsp-julia[lsp-julia]
|https://github.com/non-Jedi/lsp-julia[lsp-julia]
|https://github.com/JuliaEditorSupport/LanguageServer.jl[LanguageServer.jl]
|

|Kotlin
|https://github.com/fwcd/KotlinLanguageServer[kotlin-language-server]
|<<lsp-kotlin,Built-in>>
|https://github.com/fwcd/KotlinLanguageServer[kotlin-language-server]
|

|Ocaml
|https://github.com/freebroccolo/ocaml-language-server[ocaml-language-server]
|<<lsp-ocaml,Built-in>>
|https://github.com/freebroccolo/ocaml-language-server[ocaml-language-server]
|

|Ocaml
|https://github.com/ocaml/merlin[merlin]
|Built in
|https://github.com/ocaml/merlin[merlin]
|

|PHP(recommended)
|https://github.com/bmewburn/vscode-intelephense[intelephense]
|<<lsp-intelephense,Built-in>>
|`npm i intelephense -g`
|Yes

|PHP
|https://github.com/felixfbecker/php-language-server[php-language-server]
|<<lsp-php,Built-in>>
|https://github.com/felixfbecker/php-language-server[php-language-server]
|Yes

|Powershell
|https://github.com/PowerShell/PowerShellEditorServices[PowerShellEditorServices]
|https://github.com/kiennq/lsp-powershell[lsp-powershell]
|Automatic by https://github.com/kiennq/lsp-powershell[lsp-powershell]
|

|Python
|https://github.com/palantir/python-language-server[pyls]
|<<lsp-pyls,Built-in>>
|`pip install 'python-language-server[all]'`
|Yes

|Python(Microsoft)
|https://github.com/Microsoft/python-language-server[Microsoft Python Language Server]
|https://github.com/andrew-christianson/lsp-python-ms/[lsp-python-ms]
|https://github.com/andrew-christianson/lsp-python-ms/[lsp-python-ms]
|Yes

|Ruby
|https://github.com/castwide/solargraph[solargraph]
|<<lsp-solargraph,Built-in>>
|`gem install solargraph`
|Yes

|Rust
|https://github.com/rust-lang-nursery/rls[rls]
|<<lsp-rust,Built-in>>
|https://github.com/rust-lang-nursery/rls[rls]
|Yes

|Rust
|https://github.com/rust-analyzer/rust-analyzer[rust-analyzer]
|Built-in
|https://github.com/rust-analyzer/rust-analyzer[rust-analyzer]
|

|Scala
|https://scalameta.org/metals/[Metals]
|<<lsp-metals,Built-in>>
|https://scalameta.org/metals/docs/editors/emacs.html[Metals]
|

|Swift
|https://github.com/apple/sourcekit-lsp[sourcekit-LSP]
|https://github.com/emacs-lsp/lsp-sourcekit[lsp-sourcekit]
|https://github.com/apple/sourcekit-lsp[sourcekit-LSP]
|Yes (via llvm debug adapter)

|Terraform
|https://github.com/juliosueiras/terraform-lsp[terraform-lsp]
|Built-in
|https://github.com/juliosueiras/terraform-lsp[terraform-lsp]
|

|TeX,LaTeX,etc
|https://github.com/astoff/digestif[Digestif]
|Built-in
|https://github.com/astoff/digestif[Digestif]
|

|VHDL
|http://www.vhdltool.com/[VHDL Tool]
|<<Built-in,lsp-vhdl>>
|http://www.vhdltool.com/download[Download]
|

|Vue
|https://github.com/vuejs/vetur/tree/master/server[vue-language-server]
|<<lsp-vetur,Built-in>>
|`npm install -g vue-language-server`
|Yes (Firefox/Chrome)

|Vimscript
|https://github.com/iamcco/vim-language-server[vim-language-server]
|Built-in
|`npm install -g vim-language-server`
|

|XML
|https://github.com/angelozerr/lsp4xml[lsp4xml]
|<<lsp-xml,Built-in>>
|Download from https://github.com/angelozerr/lsp4xml/releases[lsp4xml releases]
|

|YAML
|https://github.com/redhat-developer/yaml-language-server[yaml-language-server]
|<<lsp-yaml,Built-in>>
|`npm install -g yaml-language-server`
|

|===
