nix-community.nixvim/generated/lspconfig-servers.json
github-actions[bot] 32c63161d7 generated: Update
- Updated lspconfig-servers.json
- Updated rust-analyzer.nix
2025-03-19 00:51:22 +01:00

1837 lines
161 KiB
JSON

[
{
"cmd": ["ada_language_server"],
"desc": "https://github.com/AdaCore/ada_language_server\n\nInstallation instructions can be found\n[here](https://github.com/AdaCore/ada_language_server#Install).\n\nCan be configured by passing a \"settings\" object to `ada_ls.setup{}`:\n\n``` lua\nrequire('lspconfig').ada_ls.setup{\n settings = {\n ada = {\n projectFile = \"project.gpr\";\n scenarioVariables = { ... };\n }\n }\n}\n```\n",
"name": "ada_ls"
},
{
"cmd": ["als"],
"desc": "https://github.com/agda/agda-language-server\n\nLanguage Server for Agda.\n",
"name": "agda_ls"
},
{
"cmd": ["aiken", "lsp"],
"desc": "https://github.com/aiken-lang/aiken\n\nA language server for Aiken Programming Language.\n[Installation](https://aiken-lang.org/installation-instructions)\n\nIt can be i\n",
"name": "aiken"
},
{
"cmd": ["air", "language-server"],
"desc": "https://github.com/posit-dev/air\n\nAir is an R formatter and language server, written in Rust.\n\nRefer to the [documentation](https://posit-dev.github.io/air/editors.html) for more details.\n\n ",
"name": "air"
},
{
"cmd": ["alloy", "lsp"],
"desc": "https://github.com/AlloyTools/org.alloytools.alloy\n\nAlloy is a formal specification language for describing structures and a tool for exploring them.\n\nYou may also need to configure the filetype for Alloy (*.als) files:\n\n```\nautocmd BufNewFile,BufRead *.als set filetype=alloy\n```\n\nor\n\n```lua\nvim.filetype.add({\n pattern = {\n ['.*/*.als'] = 'alloy',\n },\n})\n```\n\nAlternatively, you may use a syntax plugin like https://github.com/runoshun/vim-alloy.\n",
"name": "alloy_ls"
},
{
"cmd": ["anakinls"],
"desc": "https://pypi.org/project/anakin-language-server/\n\n`anakin-language-server` is yet another Jedi Python language server.\n\nAvailable options:\n\n- Initialization:\n https://github.com/muffinmad/anakin-language-server#initialization-option\n- Configuration:\n https://github.com/muffinmad/anakin-language-server#configuration-options\n",
"name": "anakin_language_server"
},
{
"cmd": [
"ngserver",
"--stdio",
"--tsProbeLocations",
"",
"--ngProbeLocations",
"",
"--angularCoreVersion",
""
],
"desc": "https://github.com/angular/vscode-ng-language-service\n\n`angular-language-server` can be installed via npm `npm install -g @angular/language-server`.\n\nNote, that if you override the default `cmd`, you must also update `on_new_config` to set `new_config.cmd` during startup.\n\n```lua\nlocal project_library_path = \"/path/to/project/lib\"\nlocal cmd = {\"ngserver\", \"--stdio\", \"--tsProbeLocations\", project_library_path , \"--ngProbeLocations\", project_library_path}\n\nrequire'lspconfig'.angularls.setup{\n cmd = cmd,\n on_new_config = function(new_config,new_root_dir)\n new_config.cmd = cmd\n end,\n}\n```\n ",
"name": "angularls"
},
{
"cmd": ["ansible-language-server", "--stdio"],
"desc": "https://github.com/ansible/vscode-ansible\n\nLanguage server for the ansible configuration management tool.\n\n`ansible-language-server` can be installed via `npm`:\n\n```sh\nnpm install -g @ansible/ansible-language-server\n```\n",
"name": "ansiblels"
},
{
"cmd": ["antlersls", "--stdio"],
"desc": "https://www.npmjs.com/package/antlers-language-server\n\n`antlersls` can be installed via `npm`:\n```sh\nnpm install -g antlers-language-server\n```\n",
"name": "antlersls"
},
{
"desc": "https://github.com/forcedotcom/salesforcedx-vscode\n\nLanguage server for Apex.\n\nFor manual installation, download the JAR file from the [VSCode\nextension](https://github.com/forcedotcom/salesforcedx-vscode/tree/develop/packages/salesforcedx-vscode-apex).\n\n```lua\nrequire'lspconfig'.apex_ls.setup {\n apex_jar_path = '/path/to/apex-jorje-lsp.jar',\n apex_enable_semantic_errors = false, -- Whether to allow Apex Language Server to surface semantic errors\n apex_enable_completion_statistics = false, -- Whether to allow Apex Language Server to collect telemetry on code completion usage\n}\n```\n",
"name": "apex_ls"
},
{
"cmd": ["arduino-language-server"],
"desc": "https://github.com/arduino/arduino-language-server\n\nLanguage server for Arduino\n\nThe `arduino-language-server` can be installed by running:\n\n go install github.com/arduino/arduino-language-server@latest\n\nThe `arduino-cli` tool must also be installed. Follow [these\ninstallation\ninstructions](https://arduino.github.io/arduino-cli/latest/installation/)\nfor your platform.\n\nAfter installing `arduino-cli`, follow [these\ninstructions](https://arduino.github.io/arduino-cli/latest/getting-started/#create-a-configuration-file)\nfor generating a configuration file if you haven't done so already, and\nmake sure you [install any relevant platforms\nlibraries](https://arduino.github.io/arduino-cli/latest/getting-started/#install-the-core-for-your-board).\n\nThe language server also requires `clangd` to be installed. Follow\n[these installation instructions](https://clangd.llvm.org/installation)\nfor your platform.\n\nIf you don't have a sketch yet create one.\n\n``` sh\n$ arduino-cli sketch new test\n$ cd test\n```\n\nYou will need a `sketch.yaml` file in order for the language server to\nunderstand your project. It will also save you passing options to\n`arduino-cli` each time you compile or upload a file. You can generate\nthe file by using the following commands.\n\nFirst gather some information about your board. Make sure your board is\nconnected and run the following:\n\n``` sh\n$ arduino-cli board list\nPort Protocol Type Board Name FQBN Core\n/dev/ttyACM0 serial Serial Port (USB) Arduino Uno arduino:avr:uno arduino:avr\n```\n\nThen generate the file:\n\n``` sh\narduino-cli board attach -p /dev/ttyACM0 -b arduino:avr:uno test.ino\n```\n\nThe resulting file should look like this:\n\n``` yaml\ndefault_fqbn: arduino:avr:uno\ndefault_port: /dev/ttyACM0\n```\n\nYour folder structure should look like this:\n\n .\n \u251c\u2500\u2500 test.ino\n \u2514\u2500\u2500 sketch.yaml\n\nFor further instructions about configuration options, run\n`arduino-language-server --help`.\n\nNote that an upstream bug makes keywords in some cases become undefined\nby the language server. Ref:\nhttps://github.com/arduino/arduino-ide/issues/159\n",
"name": "arduino_language_server"
},
{
"cmd": ["asm-lsp"],
"desc": "https://github.com/bergercookie/asm-lsp\n\nLanguage Server for NASM/GAS/GO Assembly\n\n`asm-lsp` can be installed via cargo:\ncargo install asm-lsp\n",
"name": "asm_lsp"
},
{
"cmd": ["ast-grep", "lsp"],
"desc": "https://ast-grep.github.io/\n\nast-grep(sg) is a fast and polyglot tool for code structural search, lint, rewriting at large scale.\nast-grep LSP only works in projects that have `sgconfig.y[a]ml` in their root directories.\n```sh\nnpm install [-g] @ast-grep/cli\n```\n",
"name": "ast_grep"
},
{
"cmd": ["astro-ls", "--stdio"],
"desc": "https://github.com/withastro/language-tools/tree/main/packages/language-server\n\n`astro-ls` can be installed via `npm`:\n```sh\nnpm install -g @astrojs/language-server\n```\n",
"name": "astro"
},
{
"cmd": ["atlas", "tool", "lsp", "--stdio"],
"desc": "https://github.com/ariga/atlas\n\nLanguage server for Atlas config and scheme files.\n\nYou may also need to configure the filetype for *.hcl files:\n\n`autocmd BufNewFile,BufRead atlas.hcl set filetype=atlas-config`\n`autocmd BufNewFile,BufRead *.my.hcl set filetype=atlas-schema-mysql`\n`autocmd BufNewFile,BufRead *.pg.hcl set filetype=atlas-schema-postgresql`\n`autocmd BufNewFile,BufRead *.lt.hcl set filetype=atlas-schema-sqlite`\n`autocmd BufNewFile,BufRead *.ch.hcl set filetype=atlas-schema-clickhouse`\n`autocmd BufNewFile,BufRead *.ms.hcl set filetype=atlas-schema-mssql`\n`autocmd BufNewFile,BufRead *.rs.hcl set filetype=atlas-schema-redshift`\n`autocmd BufNewFile,BufRead *.test.hcl set filetype=atlas-test`\n`autocmd BufNewFile,BufRead *.plan.hcl set filetype=atlas-plan`\n\nor\n\n```lua\nvim.filetype.add({\n filename = {\n ['atlas.hcl'] = 'atlas-config',\n },\n pattern = {\n ['.*/*.my.hcl'] = 'atlas-schema-mysql',\n ['.*/*.pg.hcl'] = 'atlas-schema-postgresql',\n ['.*/*.lt.hcl'] = 'atlas-schema-sqlite',\n ['.*/*.ch.hcl'] = 'atlas-schema-clickhouse',\n ['.*/*.ms.hcl'] = 'atlas-schema-mssql',\n ['.*/*.rs.hcl'] = 'atlas-schema-redshift',\n ['.*/*.test.hcl'] = 'atlas-test',\n ['.*/*.plan.hcl'] = 'atlas-plan',\n },\n})\n```\n\nOptionally, tell treesitter to treat Atlas filetypes as HCL for better syntax highlighting:\n\n```lua\nvim.treesitter.language.register('hcl', 'atlas-config')\nvim.treesitter.language.register('hcl', 'atlas-schema-mysql')\nvim.treesitter.language.register('hcl', 'atlas-schema-postgresql')\nvim.treesitter.language.register('hcl', 'atlas-schema-sqlite')\nvim.treesitter.language.register('hcl', 'atlas-schema-clickhouse')\nvim.treesitter.language.register('hcl', 'atlas-schema-mssql')\nvim.treesitter.language.register('hcl', 'atlas-schema-redshift')\nvim.treesitter.language.register('hcl', 'atlas-test')\nvim.treesitter.language.register('hcl', 'atlas-plan')\n```\n\n",
"name": "atlas"
},
{
"cmd": ["autohotkey_lsp", "--stdio"],
"desc": "https://github.com/thqby/vscode-autohotkey2-lsp\n\nAutoHotkey v2.0 LSP implementation\n ",
"name": "autohotkey_lsp"
},
{
"cmd": ["autotools-language-server"],
"desc": "https://github.com/Freed-Wu/autotools-language-server\n\n`autotools-language-server` can be installed via `pip`:\n```sh\npip install autotools-language-server\n```\n\nLanguage server for autoconf, automake and make using tree sitter in python.\n",
"name": "autotools_ls"
},
{
"cmd": ["awk-language-server"],
"desc": "https://github.com/Beaglefoot/awk-language-server/\n\n`awk-language-server` can be installed via `npm`:\n```sh\nnpm install -g awk-language-server\n```\n",
"name": "awk_ls"
},
{
"cmd": ["azure-pipelines-language-server", "--stdio"],
"desc": "https://github.com/microsoft/azure-pipelines-language-server\n\nAn Azure Pipelines language server\n\n`azure-pipelines-ls` can be installed via `npm`:\n\n```sh\nnpm install -g azure-pipelines-language-server\n```\n\nBy default `azure-pipelines-ls` will only work in files named `azure-pipelines.yml`, this can be changed by providing additional settings like so:\n```lua\nrequire(\"lspconfig\").azure_pipelines_ls.setup {\n ... -- other configuration for setup {}\n settings = {\n yaml = {\n schemas = {\n [\"https://raw.githubusercontent.com/microsoft/azure-pipelines-vscode/master/service-schema.json\"] = {\n \"/azure-pipeline*.y*l\",\n \"/*.azure*\",\n \"Azure-Pipelines/**/*.y*l\",\n \"Pipelines/*.y*l\",\n },\n },\n },\n },\n}\n```\nThe Azure Pipelines LSP is a fork of `yaml-language-server` and as such the same settings can be passed to it as `yaml-language-server`.\n",
"name": "azure_pipelines_ls"
},
{
"cmd": ["bacon-ls"],
"desc": "https://github.com/crisidev/bacon-ls\n\nA Language Server Protocol wrapper for [bacon](https://dystroy.org/bacon/).\nIt offers textDocument/diagnostic and workspace/diagnostic capabilities for Rust\nworkspaces using the Bacon export locations file.\n\nIt requires `bacon` and `bacon-ls` to be installed on the system using\n[mason.nvim](https://github.com/williamboman/mason.nvim) or manually\n\n```sh\n$ cargo install --locked bacon bacon-ls\n```\n\nSettings can be changed using the `init_options` dictionary:util\n\n```lua\ninit_options = {\n -- Bacon export filename (default: .bacon-locations).\n locationsFile = \".bacon-locations\",\n -- Try to update diagnostics every time the file is saved (default: true).\n updateOnSave = true,\n -- How many milliseconds to wait before updating diagnostics after a save (default: 1000).\n updateOnSaveWaitMillis = 1000,\n -- Try to update diagnostics every time the file changes (default: true).\n updateOnChange = true,\n -- Try to validate that bacon preferences are setup correctly to work with bacon-ls (default: true).\n validateBaconPreferences = true,\n -- f no bacon preferences file is found, create a new preferences file with the bacon-ls job definition (default: true).\n createBaconPreferencesFile = true,\n -- Run bacon in background for the bacon-ls job (default: true)\n runBaconInBackground = true,\n -- Command line arguments to pass to bacon running in background (default \"--headless -j bacon-ls\")\n runBaconInBackgroundCommandArguments = \"--headless -j bacon-ls\",\n -- How many milliseconds to wait between background diagnostics check to synchronize all open files (default: 2000).\n synchronizeAllOpenFilesWaitMillis = 2000,\n}\n```\n ",
"name": "bacon_ls"
},
{
"cmd": ["bal", "start-language-server"],
"desc": "Ballerina language server\n\nThe Ballerina language's CLI tool comes with its own language server implementation.\nThe `bal` command line tool must be installed and available in your system's PATH.\n",
"name": "ballerina"
},
{
"cmd": ["basedpyright-langserver", "--stdio"],
"desc": "https://detachhead.github.io/basedpyright\n\n`basedpyright`, a static type checker and language server for python\n",
"name": "basedpyright"
},
{
"cmd": ["bash-language-server", "start"],
"desc": "https://github.com/bash-lsp/bash-language-server\n\n`bash-language-server` can be installed via `npm`:\n```sh\nnpm i -g bash-language-server\n```\n\nLanguage server for bash, written using tree sitter in typescript.\n",
"name": "bashls"
},
{
"cmd": ["basics-language-server"],
"desc": "https://github.com/antonk52/basics-language-server/\n\nBuffer, path, and snippet completion\n\n```sh\nnpm install -g basics-language-server\n```\n",
"name": "basics_ls"
},
{
"cmd": ["bazelrc-lsp", "lsp"],
"desc": "https://github.com/salesforce-misc/bazelrc-lsp\n\n`bazelrc-lsp` is a LSP for `.bazelrc` configuration files.\n\nThe `.bazelrc` file type is not detected automatically, you can register it manually (see below) or override the filetypes:\n\n```lua\nvim.filetype.add {\n pattern = {\n ['.*.bazelrc'] = 'bazelrc',\n },\n}\n```\n",
"name": "bazelrc_lsp"
},
{
"cmd": ["beancount-language-server", "--stdio"],
"desc": "https://github.com/polarmutex/beancount-language-server#installation\n\nSee\nhttps://github.com/polarmutex/beancount-language-server#configuration\nfor configuration options\n",
"name": "beancount"
},
{
"desc": "https://github.com/azure/bicep\nBicep language server\n\nBicep language server can be installed by downloading and extracting a release of bicep-langserver.zip from [Bicep GitHub releases](https://github.com/Azure/bicep/releases).\n\nBicep language server requires the [dotnet-sdk](https://dotnet.microsoft.com/download) to be installed.\n\nNeovim does not have built-in support for the bicep filetype which is required for lspconfig to automatically launch the language server.\n\nFiletype detection can be added via an autocmd:\n```lua\nvim.cmd [[ autocmd BufNewFile,BufRead *.bicep set filetype=bicep ]]\n```\n\n**By default, bicep language server does not have a `cmd` set.** This is because nvim-lspconfig does not make assumptions about your path. You must add the following to your init.vim or init.lua to set `cmd` to the absolute path ($HOME and ~ are not expanded) of the unzipped run script or binary.\n\n```lua\nlocal bicep_lsp_bin = \"/path/to/bicep-langserver/Bicep.LangServer.dll\"\nrequire'lspconfig'.bicep.setup{\n cmd = { \"dotnet\", bicep_lsp_bin };\n ...\n}\n```\n\nTo download the latest release and place in /usr/local/bin/bicep-langserver:\n```bash\n(cd $(mktemp -d) \\\n && curl -fLO https://github.com/Azure/bicep/releases/latest/download/bicep-langserver.zip \\\n && rm -rf /usr/local/bin/bicep-langserver \\\n && unzip -d /usr/local/bin/bicep-langserver bicep-langserver.zip)\n```\n",
"name": "bicep"
},
{
"cmd": ["biome", "lsp-proxy"],
"desc": "https://biomejs.dev\n\nToolchain of the web. [Successor of Rome](https://biomejs.dev/blog/annoucing-biome).\n\n```sh\nnpm install [-g] @biomejs/biome\n```\n",
"name": "biome"
},
{
"cmd": ["bitbake-language-server"],
"desc": "\ud83d\udee0\ufe0f bitbake language server\n",
"name": "bitbake_language_server"
},
{
"cmd": ["language-server-bitbake", "--stdio"],
"desc": "https://github.com/yoctoproject/vscode-bitbake/tree/staging/server\nhttps://www.npmjs.com/package/language-server-bitbake\n\nOfficial Bitbake Language Server for the Yocto Project.\n\nCan be installed from npm or github.\n\n```\nnpm install -g language-server-bitbake\n```\n ",
"name": "bitbake_ls"
},
{
"cmd": ["blueprint-compiler", "lsp"],
"desc": "https://gitlab.gnome.org/jwestman/blueprint-compiler\n\n`blueprint-compiler` can be installed via your system package manager.\n\nLanguage server for the blueprint markup language, written in python and part\nof the blueprint-compiler.\n",
"name": "blueprint_ls"
},
{
"cmd": ["bqnlsp"],
"desc": "https://git.sr.ht/~detegr/bqnlsp\n\n\n`bqnlsp`, a language server for BQN.\n\nThe binary depends on the shared library of [CBQN](https://github.com/dzaima/CBQN) `libcbqn.so`.\nIf CBQN is installed system-wide (using `sudo make install` in its source directory) and `bqnlsp` errors that it can't find the shared library, update the linker cache by executing `sudo ldconfig`.\nIf CBQN has been installed in a non-standard directory or can't be installed globally pass `libcbqnPath = '/path/to/CBQN'` to the setup function.\nThis will set the environment variables `LD_LIBRARY_PATH` (Linux) or `DYLD_LIBRARY_PATH` (macOS) to the provided path.\n\n ",
"name": "bqnlsp"
},
{
"cmd": ["bsc", "--lsp", "--stdio"],
"desc": "https://github.com/RokuCommunity/brighterscript\n\n`brightscript` can be installed via `npm`:\n```sh\nnpm install -g brighterscript\n```\n",
"name": "bright_script"
},
{
"desc": " https://github.com/1c-syntax/bsl-language-server\n\n Language Server Protocol implementation for 1C (BSL) - 1C:Enterprise 8 and OneScript languages.\n\n ",
"name": "bsl_ls"
},
{
"cmd": ["buck2", "lsp"],
"desc": "https://github.com/facebook/buck2\n\nBuild system, successor to Buck\n\nTo better detect Buck2 project files, the following can be added:\n\n```\nvim.cmd [[ autocmd BufRead,BufNewFile *.bxl,BUCK,TARGETS set filetype=bzl ]]\n```\n",
"name": "buck2"
},
{
"cmd": ["buddy-lsp-server"],
"desc": "https://github.com/buddy-compiler/buddy-mlir#buddy-lsp-server The\nLanguage Server for the buddy-mlir, a drop-in replacement for\nmlir-lsp-server, supporting new dialects defined in buddy-mlir.\n`buddy-lsp-server` can be installed at the buddy-mlir repository\n(buddy-compiler/buddy-mlir)\n",
"name": "buddy_ls"
},
{
"cmd": ["buf", "beta", "lsp", "--timeout=0", "--log-format=text"],
"desc": "https://github.com/bufbuild/buf\n\nbuf beta lsp included in the cli itself\n\nbuf beta lsp is a Protobuf language server compatible with Buf modules and workspaces\n",
"name": "buf_ls"
},
{
"cmd": ["bufls", "serve"],
"desc": "https://github.com/bufbuild/buf-language-server\n\n`buf-language-server` can be installed via `go install`:\n```sh\ngo install github.com/bufbuild/buf-language-server/cmd/bufls@latest\n```\n\nbufls is a Protobuf language server compatible with Buf modules and workspaces\n",
"name": "bufls"
},
{
"cmd": ["bzl", "lsp", "serve"],
"desc": "https://bzl.io/\n\nhttps://docs.stack.build/docs/cli/installation\n\nhttps://docs.stack.build/docs/vscode/starlark-language-server\n",
"name": "bzl"
},
{
"cmd": ["c3lsp"],
"desc": "https://github.com/pherrymason/c3-lsp\n\nLanguage Server for c3.\n",
"name": "c3_lsp"
},
{
"cmd": ["flow", "cadence", "language-server"],
"desc": "[Cadence Language\nServer](https://github.com/onflow/cadence-tools/tree/master/languageserver)\nusing the [flow-cli](https://developers.flow.com/tools/flow-cli).\n\nThe `flow` command from flow-cli must be available. For install\ninstructions see [the\ndocs](https://developers.flow.com/tools/flow-cli/install#install-the-flow-cli)\nor the [Github page](https://github.com/onflow/flow-cli).\n\nBy default the configuration is taken from the closest `flow.json` or\nthe `flow.json` in the users home directory.\n",
"name": "cadence"
},
{
"cmd": ["scarb-cairo-language-server", "/C", "--node-ipc"],
"desc": "[Cairo Language Server](https://github.com/starkware-libs/cairo/tree/main/crates/cairo-lang-language-server)\n\nFirst, install Cairo following [this tutorial](https://book.cairo-lang.org/ch01-01-installation.html)\n\nThen enable Cairo Language Server in your Lua configuration.\n```lua\nrequire'lspconfig'.cairo_ls.setup{}\n```\n\n*cairo-language-server is still under active development, some features might not work yet !*\n",
"name": "cairo_ls"
},
{
"cmd": ["ccls"],
"desc": "https://github.com/MaskRay/ccls/wiki\n\nccls relies on a [JSON compilation\ndatabase](https://clang.llvm.org/docs/JSONCompilationDatabase.html)\nspecified as compile_commands.json or, for simpler projects, a .ccls.\nFor details on how to automatically generate one using CMake look\n[here](https://cmake.org/cmake/help/latest/variable/CMAKE_EXPORT_COMPILE_COMMANDS.html).\nAlternatively, you can use [Bear](https://github.com/rizsotto/Bear).\n\nCustomization options are passed to ccls at initialization time via\ninit_options, a list of available options can be found\n[here](https://github.com/MaskRay/ccls/wiki/Customization#initialization-options).\nFor example:\n\n``` lua\nlocal lspconfig = require'lspconfig'\nlspconfig.ccls.setup {\n init_options = {\n compilationDatabaseDirectory = \"build\";\n index = {\n threads = 0;\n };\n clang = {\n excludeArgs = { \"-frounding-math\"} ;\n };\n }\n}\n```\n",
"name": "ccls"
},
{
"cmd": ["cds-lsp", "--stdio"],
"desc": "\nhttps://cap.cloud.sap/docs/\n\n`cds-lsp` can be installed via `npm`:\n\n```sh\nnpm i -g @sap/cds-lsp\n```\n\n",
"name": "cds_lsp"
},
{
"cmd": ["circom-lsp"],
"desc": "[Circom Language Server](https://github.com/rubydusa/circom-lsp)\n\n`circom-lsp`, the language server for the Circom language.\n ",
"name": "circom-lsp"
},
{
"cmd": ["clangd"],
"desc": "https://clangd.llvm.org/installation.html\n\n- **NOTE:** Clang \\>= 11 is recommended! See\n [#23](https://github.com/neovim/nvim-lspconfig/issues/23).\n\n- If `compile_commands.json` lives in a build directory, you should\n symlink it to the root of your source tree.\n\n ln -s /path/to/myproject/build/compile_commands.json /path/to/myproject/\n\n- clangd relies on a [JSON compilation\n database](https://clang.llvm.org/docs/JSONCompilationDatabase.html)\n specified as compile_commands.json, see\n https://clangd.llvm.org/installation#compile_commandsjson\n",
"name": "clangd"
},
{
"cmd": ["clarity-lsp"],
"desc": "`clarity-lsp` is a language server for the Clarity language. Clarity is a decidable smart contract language that optimizes for predictability and security. Smart contracts allow developers to encode essential business logic on a blockchain.\n\nTo learn how to configure the clarity language server, see the [clarity-lsp documentation](https://github.com/hirosystems/clarity-lsp).\n",
"name": "clarity_lsp"
},
{
"cmd": ["clojure-lsp"],
"desc": "https://github.com/clojure-lsp/clojure-lsp\n\nClojure Language Server\n",
"name": "clojure_lsp"
},
{
"cmd": ["cmake-language-server"],
"desc": "https://github.com/regen100/cmake-language-server\n\nCMake LSP Implementation\n",
"name": "cmake"
},
{
"cmd": ["cobol-language-support"],
"desc": "Cobol language support\n ",
"name": "cobol_ls"
},
{
"cmd": [
"codeql",
"execute",
"language-server",
"--check-errors",
"ON_CHANGE",
"-q"
],
"desc": "Reference:\nhttps://codeql.github.com/docs/codeql-cli/\n\nBinaries:\nhttps://github.com/github/codeql-cli-binaries\n ",
"name": "codeqlls"
},
{
"cmd": ["coffeesense-language-server", "--stdio"],
"desc": "https://github.com/phil294/coffeesense\n\nCoffeeSense Language Server\n`coffeesense-language-server` can be installed via `npm`:\n```sh\nnpm install -g coffeesense-language-server\n```\n",
"name": "coffeesense"
},
{
"cmd": ["Contextive.LanguageServer"],
"desc": "https://github.com/dev-cycles/contextive\n\nLanguage Server for Contextive.\n\nContextive allows you to define terms in a central file and provides auto-completion suggestions and hover panels for these terms wherever they're used.\n\nTo install the language server, you need to download the appropriate [GitHub release asset](https://github.com/dev-cycles/contextive/releases/) for your operating system and architecture.\n\nAfter the download unzip the Contextive.LanguageServer binary and copy the file into a folder that is included in your system's PATH.\n",
"name": "contextive"
},
{
"cmd": ["coq-lsp"],
"desc": "https://github.com/ejgallego/coq-lsp/\n",
"name": "coq_lsp"
},
{
"cmd": ["crystalline"],
"desc": "https://github.com/elbywan/crystalline\n\nCrystal language server.\n",
"name": "crystalline"
},
{
"cmd": ["csharp-ls"],
"desc": "https://github.com/razzmatazz/csharp-language-server\n\nLanguage Server for C#.\n\ncsharp-ls requires the\n[dotnet-sdk](https://dotnet.microsoft.com/download) to be installed.\n\nThe preferred way to install csharp-ls is with\n`dotnet tool install --global csharp-ls`.\n",
"name": "csharp_ls"
},
{
"cmd": ["css-variables-language-server", "--stdio"],
"desc": "https://github.com/vunguyentuan/vscode-css-variables/tree/master/packages/css-variables-language-server\n\nCSS variables autocompletion and go-to-definition\n\n`css-variables-language-server` can be installed via `npm`:\n\n```sh\nnpm i -g css-variables-language-server\n```\n",
"name": "css_variables"
},
{
"cmd": ["vscode-css-language-server", "--stdio"],
"desc": "\nhttps://github.com/hrsh7th/vscode-langservers-extracted\n\n`css-languageserver` can be installed via `npm`:\n\n```sh\nnpm i -g vscode-langservers-extracted\n```\n\nNeovim does not currently include built-in snippets. `vscode-css-language-server` only provides completions when snippet support is enabled. To enable completion, install a snippet plugin and add the following override to your language client capabilities during setup.\n\n```lua\n--Enable (broadcasting) snippet capability for completion\nlocal capabilities = vim.lsp.protocol.make_client_capabilities()\ncapabilities.textDocument.completion.completionItem.snippetSupport = true\n\nrequire'lspconfig'.cssls.setup {\n capabilities = capabilities,\n}\n```\n",
"name": "cssls"
},
{
"cmd": ["cssmodules-language-server"],
"desc": "https://github.com/antonk52/cssmodules-language-server\n\nLanguage server for autocompletion and go-to-definition functionality for CSS modules.\n\nYou can install cssmodules-language-server via npm:\n```sh\nnpm install -g cssmodules-language-server\n```\n ",
"name": "cssmodules_ls"
},
{
"cmd": ["cucumber-language-server", "--stdio"],
"desc": "https://cucumber.io\nhttps://github.com/cucumber/common\nhttps://www.npmjs.com/package/@cucumber/language-server\n\nLanguage server for Cucumber.\n\n`cucumber-language-server` can be installed via `npm`:\n```sh\nnpm install -g @cucumber/language-server\n```\n ",
"name": "cucumber_language_server"
},
{
"cmd": ["cue", "lsp"],
"desc": "https://github.com/cue-lang/cue\n\nCUE makes it easy to validate data, write schemas, and ensure configurations align with policies.\n",
"name": "cue"
},
{
"cmd": ["custom-elements-languageserver", "--stdio"],
"desc": "https://github.com/Matsuuu/custom-elements-language-server\n\n`custom-elements-languageserver` depends on `typescript`. Both packages can be installed via `npm`:\n```sh\nnpm install -g typescript custom-elements-languageserver\n```\nTo configure typescript language server, add a\n[`tsconfig.json`](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) or\n[`jsconfig.json`](https://code.visualstudio.com/docs/languages/jsconfig) to the root of your\nproject.\nHere's an example that disables type checking in JavaScript files.\n```json\n{\n \"compilerOptions\": {\n \"module\": \"commonjs\",\n \"target\": \"es6\",\n \"checkJs\": false\n },\n \"exclude\": [\n \"node_modules\"\n ]\n}\n```\n",
"name": "custom_elements_ls"
},
{
"cmd": ["cypher-language-server", "--stdio"],
"desc": "https://github.com/neo4j/cypher-language-support/tree/main/packages/language-server\n\n`cypher-language-server`, language server for Cypher query language.\nPart of the umbrella project cypher-language-support: https://github.com/neo4j/cypher-language-support\n\n`cypher-language-server` can be installed via `npm`:\n```sh\nnpm i -g @neo4j-cypher/language-server\n```\n",
"name": "cypher_ls"
},
{ "cmd": ["DaedalusLanguageServer"], "name": "daedalus_ls" },
{
"cmd": ["dafny", "server"],
"desc": " Support for the Dafny language server.\n\n The default `cmd` uses \"dafny server\", which works on Dafny 4.0.0+. For\n older versions of Dafny, you can compile the language server from source at\n [dafny-lang/language-server-csharp](https://github.com/dafny-lang/language-server-csharp)\n and set `cmd = {\"dotnet\", \"<Path to your language server>\"}`.\n ",
"name": "dafny"
},
{
"cmd": ["cuelsp"],
"desc": "https://github.com/dagger/cuelsp\n\nDagger's lsp server for cuelang.\n",
"name": "dagger"
},
{
"cmd": ["dart", "language-server", "--protocol=lsp"],
"desc": "https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server/tool/lsp_spec\n\nLanguage server for dart.\n",
"name": "dartls"
},
{
"cmd": ["dcm", "start-server", "--client=neovim"],
"desc": "https://dcm.dev/\n\nLanguage server for DCM analyzer.\n",
"name": "dcmls"
},
{
"cmd": ["debputy", "lsp", "server"],
"desc": "https://salsa.debian.org/debian/debputy\n\nLanguage Server for Debian packages.\n",
"name": "debputy"
},
{
"cmd": ["DelphiLSP.exe"],
"desc": "Language server for Delphi from Embarcadero.\nhttps://marketplace.visualstudio.com/items?itemName=EmbarcaderoTechnologies.delphilsp\n\nNote, the '*.delphilsp.json' file is required, more details at:\nhttps://docwiki.embarcadero.com/RADStudio/Alexandria/en/Using_DelphiLSP_Code_Insight_with_Other_Editors\n\nBelow, you'll find a sample configuration for the lazy manager.\nWhen on_attach is triggered, it signals DelphiLSP to load settings from a configuration file.\nWithout this step, DelphiLSP initializes but remains non-functional:\n\n```lua\n\"neovim/nvim-lspconfig\",\nlazy = false,\nconfig = function()\n local capabilities = require(\"cmp_nvim_lsp\").default_capabilities()\n local lspconfig = require(\"lspconfig\")\n\n lspconfig.delphi_ls.setup({\n capabilities = capabilities,\n\n on_attach = function(client)\n local lsp_config = vim.fs.find(function(name)\n return name:match(\".*%.delphilsp.json$\")\n end, { type = \"file\", path = client.config.root_dir, upward = false })[1]\n\n if lsp_config then\n client.config.settings = { settingsFile = lsp_config }\n client.notify(\"workspace/didChangeConfiguration\", { settings = client.config.settings })\n else\n vim.notify_once(\"delphi_ls: '*.delphilsp.json' config file not found\")\n end\n end,\n })\nend,\n```\n",
"name": "delphi_ls"
},
{
"cmd": ["deno", "lsp"],
"desc": "https://github.com/denoland/deno\n\nDeno's built-in language server\n\nTo appropriately highlight codefences returned from denols, you will need to augment vim.g.markdown_fenced languages\n in your init.lua. Example:\n\n```lua\nvim.g.markdown_fenced_languages = {\n \"ts=typescript\"\n}\n```\n\n",
"name": "denols"
},
{
"cmd": ["dhall-lsp-server"],
"desc": "https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-lsp-server\n\nlanguage server for dhall\n\n`dhall-lsp-server` can be installed via cabal:\n```sh\ncabal install dhall-lsp-server\n```\nprebuilt binaries can be found [here](https://github.com/dhall-lang/dhall-haskell/releases).\n",
"name": "dhall_lsp_server"
},
{
"cmd": ["diagnostic-languageserver", "--stdio"],
"desc": "https://github.com/iamcco/diagnostic-languageserver\n\nDiagnostic language server integrate with linters.\n",
"name": "diagnosticls"
},
{
"cmd": ["digestif"],
"desc": "https://github.com/astoff/digestif\n\nDigestif is a code analyzer, and a language server, for LaTeX, ConTeXt et caterva. It provides\n\ncontext-sensitive completion, documentation, code navigation, and related functionality to any\n\ntext editor that speaks the LSP protocol.\n",
"name": "digestif"
},
{
"cmd": ["djlsp"],
"desc": " https://github.com/fourdigits/django-template-lsp\n\n `djlsp`, a language server for Django templates.\n ",
"name": "djlsp"
},
{
"cmd": ["docker-compose-langserver", "--stdio"],
"desc": "https://github.com/microsoft/compose-language-service\nThis project contains a language service for Docker Compose.\n\n`compose-language-service` can be installed via `npm`:\n\n```sh\nnpm install @microsoft/compose-language-service\n```\n\nNote: If the docker-compose-langserver doesn't startup when entering a `docker-compose.yaml` file, make sure that the filetype is `yaml.docker-compose`. You can set with: `:set filetype=yaml.docker-compose`.\n",
"name": "docker_compose_language_service"
},
{
"cmd": ["docker-langserver", "--stdio"],
"desc": "https://github.com/rcjsuen/dockerfile-language-server-nodejs\n\n`docker-langserver` can be installed via `npm`:\n```sh\nnpm install -g dockerfile-language-server-nodejs\n```\n\nAdditional configuration can be applied in the following way:\n```lua\nrequire(\"lspconfig\").dockerls.setup {\n settings = {\n docker = {\n\t languageserver = {\n\t formatter = {\n\t\t ignoreMultilineInstructions = true,\n\t\t},\n\t },\n\t}\n }\n}\n```\n ",
"name": "dockerls"
},
{
"cmd": ["dolmenls"],
"desc": "https://github.com/Gbury/dolmen/blob/master/doc/lsp.md\n\n`dolmenls` can be installed via `opam`\n```sh\nopam install dolmen_lsp\n```\n ",
"name": "dolmenls"
},
{
"cmd": ["dot-language-server", "--stdio"],
"desc": "https://github.com/nikeee/dot-language-server\n\n`dot-language-server` can be installed via `npm`:\n```sh\nnpm install -g dot-language-server\n```\n ",
"name": "dotls"
},
{
"cmd": ["dprint", "lsp"],
"desc": "https://github.com/dprint/dprint\n\nPluggable and configurable code formatting platform written in Rust.\n ",
"name": "dprint"
},
{
"desc": "https://github.com/kiegroup/drools-lsp\n\nLanguage server for the [Drools Rule Language\n(DRL)](https://docs.drools.org/latest/drools-docs/docs-website/drools/language-reference/#con-drl_drl-rules).\n\nThe `drools-lsp` server is a self-contained java jar file\n(`drools-lsp-server-jar-with-dependencies.jar`), and can be downloaded\nfrom <https://github.com/kiegroup/drools-lsp/releases/>.\n\nConfiguration information:\n\n``` lua\n-- Option 1) Specify the entire command:\nrequire('lspconfig').drools_lsp.setup {\n cmd = { '/path/to/java', '-jar', '/path/to/drools-lsp-server-jar-with-dependencies.jar' },\n}\n\n-- Option 2) Specify just the jar path (the JAVA_HOME environment variable will be respected if present):\nrequire('lspconfig').drools_lsp.setup {\n drools = { jar = '/path/to/drools-lsp-server-jar-with-dependencies.jar' },\n}\n\n-- Option 3) Specify the java bin and/or java opts in addition to the jar path:\nrequire('lspconfig').drools_lsp.setup {\n drools = {\n java = { bin = '/path/to/java', opts = { '-Xmx100m' } },\n jar = '/path/to/drools-lsp-server-jar-with-dependencies.jar',\n },\n}\n```\n\nNeovim does not yet have automatic detection for the `drools` filetype,\nbut it can be added with:\n\n``` lua\nvim.cmd [[ autocmd BufNewFile,BufRead *.drl set filetype=drools ]]\n```\n",
"name": "drools_lsp"
},
{
"cmd": ["ds-pinyin-lsp"],
"desc": "https://github.com/iamcco/ds-pinyin-lsp\nDead simple Pinyin language server for input Chinese without IME(input method).\nTo install, download the latest [release](https://github.com/iamcco/ds-pinyin-lsp/releases) and ensure `ds-pinyin-lsp` is on your path.\nAnd make ensure the database file `dict.db3` is also downloaded. And put the path to `dict.dbs` in the following code.\n\n```lua\n\nrequire('lspconfig').ds_pinyin_lsp.setup {\n init_options = {\n db_path = \"your_path_to_database\"\n }\n}\n\n```\n",
"name": "ds_pinyin_lsp"
},
{
"cmd": ["dts-lsp"],
"desc": "`dts-lsp` is an LSP for Devicetree files built on top of tree-sitter-devicetree grammar.\nLanguage servers can be used in many editors, such as Visual Studio Code, Emacs\nor Vim\n\nInstall `dts-lsp` from https://github.com/igor-prusov/dts-lsp and add it to path\n\n`dts-lsp` doesn't require any configuration.\n\nMore about Devicetree:\nhttps://www.devicetree.org/\nhttps://docs.zephyrproject.org/latest/build/dts/index.html\n\n",
"name": "dts_lsp"
},
{
"cmd": ["earthlyls"],
"desc": "https://github.com/glehmann/earthlyls\n\nA fast language server for earthly.\n",
"name": "earthlyls"
},
{
"cmd": ["ecsact_lsp_server", "--stdio"],
"desc": "https://github.com/ecsact-dev/ecsact_lsp_server\n\nLanguage server for Ecsact.\n\nThe default cmd assumes `ecsact_lsp_server` is in your PATH. Typically from the\nEcsact SDK: https://ecsact.dev/start\n",
"name": "ecsact"
},
{
"cmd": ["efm-langserver"],
"desc": "https://github.com/mattn/efm-langserver\n\nGeneral purpose Language Server that can use specified error message format generated from specified command.\n\nRequires at minimum EFM version [v0.0.38](https://github.com/mattn/efm-langserver/releases/tag/v0.0.38) to support\nlaunching the language server on single files. If on an older version of EFM, disable single file support:\n\n```lua\nrequire('lspconfig')['efm'].setup{\n settings = ..., -- You must populate this according to the EFM readme\n filetypes = ..., -- Populate this according to the note below\n single_file_support = false, -- This is the important line for supporting older version of EFM\n}\n```\n\nNote: In order for neovim's built-in language server client to send the appropriate `languageId` to EFM, **you must\nspecify `filetypes` in your call to `setup{}`**. Otherwise `lspconfig` will launch EFM on the `BufEnter` instead\nof the `FileType` autocommand, and the `filetype` variable used to populate the `languageId` will not yet be set.\n\n```lua\nrequire('lspconfig')['efm'].setup{\n settings = ..., -- You must populate this according to the EFM readme\n filetypes = { 'python','cpp','lua' }\n}\n```\n\n",
"name": "efm"
},
{
"desc": "https://github.com/elixir-lsp/elixir-ls\n\n`elixir-ls` can be installed by following the instructions\n[here](https://github.com/elixir-lsp/elixir-ls#building-and-running).\n\n1. Download the zip from\n https://github.com/elixir-lsp/elixir-ls/releases/latest/\n\n2. Unzip it and make it executable.\n\n ``` bash\n unzip elixir-ls.zip -d /path/to/elixir-ls\n # Unix\n chmod +x /path/to/elixir-ls/language_server.sh\n ```\n\n**By default, elixir-ls doesn't have a `cmd` set.** This is because\nnvim-lspconfig does not make assumptions about your path. You must add\nthe following to your init.vim or init.lua to set `cmd` to the absolute\npath (\\$HOME and \\~ are not expanded) of your unzipped elixir-ls.\n\n``` lua\nrequire'lspconfig'.elixirls.setup{\n -- Unix\n cmd = { \"/path/to/elixir-ls/language_server.sh\" };\n -- Windows\n cmd = { \"/path/to/elixir-ls/language_server.bat\" };\n ...\n}\n```\n\n'root_dir' is chosen like this: if two or more directories containing\n`mix.exs` were found when searching directories upward, the second one\n(higher up) is chosen, with the assumption that it is the root of an\numbrella app. Otherwise the directory containing the single mix.exs that\nwas found is chosen.\n",
"name": "elixirls"
},
{
"cmd": ["elm-language-server"],
"desc": "https://github.com/elm-tooling/elm-language-server#installation\n\nIf you don't want to use Nvim to install it, then you can use:\n\n``` sh\nnpm install -g elm elm-test elm-format @elm-tooling/elm-language-server\n```\n",
"name": "elmls"
},
{
"cmd": ["elp", "server"],
"desc": "https://whatsapp.github.io/erlang-language-platform\n\nELP integrates Erlang into modern IDEs via the language server protocol and was\ninspired by rust-analyzer.\n",
"name": "elp"
},
{
"cmd": ["ember-language-server", "--stdio"],
"desc": "https://github.com/ember-tooling/ember-language-server\n\n`ember-language-server` can be installed via `npm`:\n\n```sh\nnpm install -g @ember-tooling/ember-language-server\n```\n",
"name": "ember"
},
{
"cmd": ["emmet-language-server", "--stdio"],
"desc": "https://github.com/olrtg/emmet-language-server\n\nPackage can be installed via `npm`:\n```sh\nnpm install -g @olrtg/emmet-language-server\n```\n",
"name": "emmet_language_server"
},
{
"cmd": ["emmet-ls", "--stdio"],
"desc": "https://github.com/aca/emmet-ls\n\nPackage can be installed via `npm`:\n```sh\nnpm install -g emmet-ls\n```\n",
"name": "emmet_ls"
},
{
"cmd": ["erg", "--language-server"],
"desc": "https://github.com/erg-lang/erg#flags ELS\n\nELS (erg-language-server) is a language server for the Erg programming\nlanguage.\n\nerg-language-server can be installed via `cargo` and used as follows:\n`sh cargo install erg --features els erg --language-server`\n",
"name": "erg_language_server"
},
{
"cmd": ["erlang_ls"],
"desc": "https://erlang-ls.github.io\n\nLanguage Server for Erlang.\n\nClone [erlang_ls](https://github.com/erlang-ls/erlang_ls)\nCompile the project with `make` and copy resulting binaries somewhere in your $PATH eg. `cp _build/*/bin/* ~/local/bin`\n\nInstallation instruction can be found [here](https://github.com/erlang-ls/erlang_ls).\n\nInstallation requirements:\n - [Erlang OTP 21+](https://github.com/erlang/otp)\n - [rebar3 3.9.1+](https://github.com/erlang/rebar3)\n",
"name": "erlangls"
},
{
"cmd": ["python3", "-m", "esbonio"],
"desc": "https://github.com/swyddfa/esbonio\n\nEsbonio is a language server for\n[Sphinx](https://www.sphinx-doc.org/en/master/) documentation projects.\nThe language server can be installed via pip\n\n pip install esbonio\n\nSince Sphinx is highly extensible you will get best results if you\ninstall the language server in the same Python environment as the one\nused to build your documentation. To ensure that the correct Python\nenvironment is picked up, you can either launch `nvim` with the correct\nenvironment activated.\n\n source env/bin/activate\n nvim\n\nOr you can modify the default `cmd` to include the full path to the\nPython interpreter.\n\n``` lua\nrequire'lspconfig'.esbonio.setup {\n cmd = { '/path/to/virtualenv/bin/python', '-m', 'esbonio' }\n}\n```\n\nEsbonio supports a number of config values passed as `init_options` on\nstartup, for example.\n\n``` lua\nrequire'lspconfig'.esbonio.setup {\n init_options = {\n server = {\n logLevel = \"debug\"\n },\n sphinx = {\n confDir = \"/path/to/docs\",\n srcDir = \"${confDir}/../docs-src\"\n }\n}\n```\n\nA full list and explanation of the available options can be found\n[here](https://docs.esbon.io/en/esbonio-language-server-v0.16.4/lsp/getting-started.html?editor=neovim-lspconfig#configuration)\n",
"name": "esbonio"
},
{
"cmd": ["vscode-eslint-language-server", "--stdio"],
"desc": "https://github.com/hrsh7th/vscode-langservers-extracted\n\n`vscode-eslint-language-server` is a linting engine for JavaScript /\nTypescript. It can be installed via `npm`:\n\n``` sh\nnpm i -g vscode-langservers-extracted\n```\n\n`vscode-eslint-language-server` provides an `EslintFixAll` command that\ncan be used to format a document on save:\n\n``` lua\nlspconfig.eslint.setup({\n --- ...\n on_attach = function(client, bufnr)\n vim.api.nvim_create_autocmd(\"BufWritePre\", {\n buffer = bufnr,\n command = \"EslintFixAll\",\n })\n end,\n})\n```\n\nSee\n[vscode-eslint](https://github.com/microsoft/vscode-eslint/blob/55871979d7af184bf09af491b6ea35ebd56822cf/server/src/eslintServer.ts#L216-L229)\nfor configuration options.\n\nMessages handled in lspconfig: `eslint/openDoc`,\n`eslint/confirmESLintExecution`, `eslint/probeFailed`,\n`eslint/noLibrary`\n\nAdditional messages you can handle: `eslint/noConfig`\n",
"name": "eslint"
},
{
"cmd": ["facility-language-server"],
"desc": "https://github.com/FacilityApi/FacilityLanguageServer\n\nFacility language server protocol (LSP) support.\n",
"name": "facility_language_server"
},
{
"cmd": ["fennel-language-server"],
"desc": "https://github.com/rydesun/fennel-language-server\n\nFennel language server protocol (LSP) support.\n",
"name": "fennel_language_server"
},
{
"cmd": ["fennel-ls"],
"desc": "https://sr.ht/\\~xerool/fennel-ls/\n\nA language server for fennel.\n\nfennel-ls is configured using the closest file to your working directory\nnamed `flsproject.fnl`. All fennel-ls configuration options [can be\nfound\nhere](https://git.sr.ht/~xerool/fennel-ls/tree/HEAD/docs/manual.md#configuration).\n",
"name": "fennel_ls"
},
{
"cmd": ["fish-lsp", "start"],
"desc": "https://github.com/ndonfris/fish-lsp\n\nA Language Server Protocol (LSP) tailored for the fish shell.\nThis project aims to enhance the coding experience for fish,\nby introducing a suite of intelligent features like auto-completion,\nscope aware symbol analysis, per-token hover generation, and many others.\n\n[homepage](https://www.fish-lsp.dev/)\n",
"name": "fish_lsp"
},
{
"cmd": ["npx", "--no-install", "flow", "lsp"],
"desc": "https://flow.org/\nhttps://github.com/facebook/flow\n\nSee below for how to setup Flow itself.\nhttps://flow.org/en/docs/install/\n\nSee below for lsp command options.\n\n```sh\nnpx flow lsp --help\n```\n ",
"name": "flow"
},
{
"cmd": ["flux-lsp"],
"desc": "https://github.com/influxdata/flux-lsp\n`flux-lsp` can be installed via `cargo`:\n```sh\ncargo install --git https://github.com/influxdata/flux-lsp\n```\n",
"name": "flux_lsp"
},
{
"cmd": ["foam-ls", "--stdio"],
"desc": "https://github.com/FoamScience/foam-language-server\n\n`foam-language-server` can be installed via `npm`\n```sh\nnpm install -g foam-language-server\n```\n",
"name": "foam_ls"
},
{
"cmd": [
"fortls",
"--notify_init",
"--hover_signature",
"--hover_language=fortran",
"--use_signature_help"
],
"desc": "https://fortls.fortran-lang.org/index.html\n\nfortls is a Fortran Language Server, the server can be installed via pip\n\n```sh\npip install fortls\n```\n\nSettings to the server can be passed either through the `cmd` option or through\na local configuration file e.g. `.fortls`. For more information\nsee the `fortls` [documentation](https://fortls.fortran-lang.org/options.html).\n ",
"name": "fortls"
},
{
"cmd": ["fsautocomplete", "--adaptive-lsp-server-enabled"],
"desc": "https://github.com/fsharp/FsAutoComplete\n\nLanguage Server for F# provided by FsAutoComplete (FSAC).\n\nFsAutoComplete requires the\n[dotnet-sdk](https://dotnet.microsoft.com/download) to be installed.\n\nThe preferred way to install FsAutoComplete is with\n`dotnet tool install --global fsautocomplete`.\n\nInstructions to compile from source are found on the main\n[repository](https://github.com/fsharp/FsAutoComplete).\n\nYou may also need to configure the filetype as Vim defaults to Forth for\n`*.fs` files:\n\n`autocmd BufNewFile,BufRead *.fs,*.fsx,*.fsi set filetype=fsharp`\n\nThis is automatically done by plugins such as\n[PhilT/vim-fsharp](https://github.com/PhilT/vim-fsharp),\n[fsharp/vim-fsharp](https://github.com/fsharp/vim-fsharp), and\n[adelarsq/neofsharp.vim](https://github.com/adelarsq/neofsharp.vim).\n",
"name": "fsautocomplete"
},
{
"cmd": ["dotnet", "FSharpLanguageServer.dll"],
"desc": "F# Language Server https://github.com/faldor20/fsharp-language-server\n\nAn implementation of the language server protocol using the F# Compiler\nService.\n\nBuild the project from source and override the command path to location\nof DLL.\n\nIf filetype determination is not already performed by an available\nplugin ([PhilT/vim-fsharp](https://github.com/PhilT/vim-fsharp),\n[fsharp/vim-fsharp](https://github.com/fsharp/vim-fsharp), and\n[adelarsq/neofsharp.vim](https://github.com/adelarsq/neofsharp.vim). ),\nthen the following must be added to initialization configuration:\n\n`autocmd BufNewFile,BufRead *.fs,*.fsx,*.fsi set filetype=fsharp`\n",
"name": "fsharp_language_server"
},
{
"cmd": ["fstar.exe", "--lsp"],
"desc": "https://github.com/FStarLang/FStar\n\nLSP support is included in FStar. Make sure `fstar.exe` is in your PATH.\n",
"name": "fstar"
},
{
"cmd": ["futhark", "lsp"],
"desc": "https://github.com/diku-dk/futhark\n\nFuthark Language Server\n\nThis language server comes with the futhark compiler and is run with the command\n```\nfuthark lsp\n```\n",
"name": "futhark_lsp"
},
{
"cmd": "see source file",
"desc": "https://github.com/godotengine/godot\n\nLanguage server for GDScript, used by Godot Engine.\n",
"name": "gdscript"
},
{
"cmd": ["gdshader-lsp", "--stdio"],
"desc": "https://github.com/godofavacyn/gdshader-lsp\n\nA language server for the Godot Shading language.\n",
"name": "gdshader_lsp"
},
{
"cmd": ["gh-actions-language-server", "--stdio"],
"desc": "https://github.com/lttb/gh-actions-language-server\n\nLanguage server for GitHub Actions.\n\nThe projects [forgejo](https://forgejo.org/) and\n[gitea](https://about.gitea.com/) design their actions to be as\ncompatible to github as possible with only [a few\ndifferences](https://docs.gitea.com/usage/actions/comparison#unsupported-workflows-syntax)\nbetween the systems. The `gh_actions_ls` is therefore enabled for those\n`yaml` files as well.\n\nThe `gh-actions-language-server` can be installed via `npm`:\n\n``` sh\nnpm install -g gh-actions-language-server\n```\n",
"name": "gh_actions_ls"
},
{
"cmd": ["ghcide", "--lsp"],
"desc": "https://github.com/digital-asset/ghcide\n\nA library for building Haskell IDE tooling.\n\"ghcide\" isn't for end users now. Use \"haskell-language-server\" instead of \"ghcide\".\n",
"name": "ghcide"
},
{
"cmd": ["ghdl-ls"],
"desc": "https://github.com/ghdl/ghdl-language-server\n\nA language server for VHDL, using ghdl as its backend.\n\n`ghdl-ls` is part of pyghdl, for installation instructions see\n[the upstream README](https://github.com/ghdl/ghdl/tree/master/pyGHDL/lsp).\n",
"name": "ghdl_ls"
},
{
"cmd": ["ginko_ls"],
"desc": "`ginko_ls` is meant to be a feature-complete language server for device-trees.\nLanguage servers can be used in many editors, such as Visual Studio Code, Emacs\nor Vim\n\nInstall `ginko_ls` from https://github.com/Schottkyc137/ginko and add it to path\n\n`ginko_ls` doesn't require any configuration.\n",
"name": "ginko_ls"
},
{
"cmd": ["gitlab-ci-ls"],
"desc": "https://github.com/alesbrelih/gitlab-ci-ls\n\nLanguage Server for Gitlab CI\n\n`gitlab-ci-ls` can be installed via cargo:\ncargo install gitlab-ci-ls\n",
"name": "gitlab_ci_ls"
},
{
"cmd": ["glasgow"],
"desc": "https://github.com/nolanderc/glasgow\n\nProvides language features for WGSL (WebGPU Shading Language):\n- Completions:\n - Local functions/variables/types.\n - Fields and swizzles.\n - Builtin types and functions (`dot`, `reflect`, `textureSample`, `vec3`, `mat4x2`, etc.)\n- Hover Documentation:\n - Function signatures.\n - Variable types.\n - Includes builtin types and functions. Text is taken from the WGSL specification.\n- Goto Definition\n- Find all References\n- Rename\n- Formatter\n\n`glasgow` can be installed via `cargo`:\n```sh\ncargo install glasgow\n```\n",
"name": "glasgow"
},
{
"cmd": ["gleam", "lsp"],
"desc": "https://github.com/gleam-lang/gleam\n\nA language server for Gleam Programming Language.\n\nIt comes with the Gleam compiler, for installation see: [Installing Gleam](https://gleam.run/getting-started/installing/)\n",
"name": "gleam"
},
{
"cmd": ["glint-language-server"],
"desc": " https://github.com/typed-ember/glint\n\n https://typed-ember.gitbook.io/glint/\n\n `glint-language-server` is installed when adding `@glint/core` to your project's devDependencies:\n\n ```sh\n npm install @glint/core --save-dev\n ```\n\n or\n\n ```sh\n yarn add -D @glint/core\n ```\n\n or\n\n ```sh\n pnpm add -D @glint/core\n ```\n",
"name": "glint"
},
{
"cmd": ["glsl_analyzer"],
"desc": "https://github.com/nolanderc/glsl_analyzer\n\nLanguage server for GLSL\n ",
"name": "glsl_analyzer"
},
{
"cmd": ["glslls", "--stdin"],
"desc": "https://github.com/svenstaro/glsl-language-server\n\nLanguage server implementation for GLSL\n\n`glslls` can be compiled and installed manually, or, if your distribution has access to the AUR,\nvia the `glsl-language-server` AUR package\n ",
"name": "glslls"
},
{
"cmd": ["golangci-lint-langserver"],
"desc": "Combination of both lint server and client\n\nhttps://github.com/nametake/golangci-lint-langserver\nhttps://github.com/golangci/golangci-lint\n\n\nInstallation of binaries needed is done via\n\n```\ngo install github.com/nametake/golangci-lint-langserver@latest\ngo install github.com/golangci/golangci-lint/cmd/golangci-lint@latest\n```\n\n",
"name": "golangci_lint_ls"
},
{
"cmd": ["gopls"],
"desc": "https://github.com/golang/tools/tree/master/gopls\n\nGoogle's lsp server for golang.\n",
"name": "gopls"
},
{
"cmd": ["gradle-language-server"],
"desc": "https://github.com/microsoft/vscode-gradle\n\nMicrosoft's lsp server for gradle files\n\nIf you're setting this up manually, build vscode-gradle using `./gradlew installDist` and point `cmd` to the `gradle-language-server` generated in the build directory\n",
"name": "gradle_ls"
},
{
"cmd": ["grammarly-languageserver", "--stdio"],
"desc": "https://github.com/znck/grammarly\n\n`grammarly-languageserver` can be installed via `npm`:\n\n```sh\nnpm i -g grammarly-languageserver\n```\n\nWARNING: Since this language server uses Grammarly's API, any document you open with it running is shared with them. Please evaluate their [privacy policy](https://www.grammarly.com/privacy-policy) before using this.\n",
"name": "grammarly"
},
{
"cmd": ["graphql-lsp", "server", "-m", "stream"],
"desc": "https://github.com/graphql/graphiql/tree/main/packages/graphql-language-service-cli\n\n`graphql-lsp` can be installed via `npm`:\n\n```sh\nnpm install -g graphql-language-service-cli\n```\n\nNote that you must also have [the graphql package](https://github.com/graphql/graphql-js) installed within your project and create a [GraphQL config file](https://the-guild.dev/graphql/config/docs).\n",
"name": "graphql"
},
{
"cmd": ["java", "-jar", "groovy-language-server-all.jar"],
"desc": "https://github.com/prominic/groovy-language-server.git\n\nRequirements: - Linux/macOS (for now) - Java 11+\n\n`groovyls` can be installed by following the instructions\n[here](https://github.com/prominic/groovy-language-server.git#build).\n\nIf you have installed groovy language server, you can set the `cmd`\ncustom path as follow:\n\n``` lua\nrequire'lspconfig'.groovyls.setup{\n -- Unix\n cmd = { \"java\", \"-jar\", \"path/to/groovyls/groovy-language-server-all.jar\" },\n ...\n}\n```\n",
"name": "groovyls"
},
{
"cmd": ["guile-lsp-server"],
"desc": "https://codeberg.org/rgherdt/scheme-lsp-server\n\nThe recommended way is to install guile-lsp-server is using Guix. Unfortunately it is still not available at the official Guix channels, but you can use the provided channel guix.scm in the repo:\n```sh\nguix package -f guix.scm\n```\n\nCheckout the repo for more info.\n\nNote: This LSP will start on `scheme.guile` filetype. You can set this file type using `:help modeline` or adding https://gitlab.com/HiPhish/guile.vim to your plugins to automatically set it.\n ",
"name": "guile_ls"
},
{
"cmd": ["harper-ls", "--stdio"],
"desc": "https://github.com/automattic/harper\n\nThe language server for Harper, the slim, clean language checker for developers.\n\nSee our [documentation](https://writewithharper.com/docs/integrations/neovim) for more information on settings.\n\nIn short, they should look something like this:\n```lua\nlspconfig.harper_ls.setup {\n settings = {\n [\"harper-ls\"] = {\n userDictPath = \"~/dict.txt\"\n }\n },\n}\n```\n ",
"name": "harper_ls"
},
{
"cmd": ["haxe-language-server"],
"desc": "https://github.com/vshaxe/haxe-language-server\n\nThe Haxe language server can be built by running the following commands from\nthe project's root directory:\n\n npm install\n npx lix run vshaxe-build -t language-server\n\nThis will create `bin/server.js`. Note that the server requires Haxe 3.4.0 or\nhigher.\n\nAfter building the language server, set the `cmd` setting in your setup\nfunction:\n\n```lua\nlspconfig.haxe_language_server.setup({\n cmd = {\"node\", \"path/to/bin/server.js\"},\n})\n```\n\nBy default, the language server is configured with the HXML compiler arguments\ncontained in the first `.hxml` file found in your project's root directory.\nIf you want to specify which one to use, set the `init_options.displayArguments`\nsetting:\n\n```lua\nlspconfig.haxe_language_server.setup({\n -- ...\n init_options = {\n displayArguments = { \"build.hxml\" },\n },\n})\n```\n\n",
"name": "haxe_language_server"
},
{
"cmd": ["hdl_checker", "--lsp"],
"desc": "https://github.com/suoto/hdl_checker\nLanguage server for hdl-checker.\nInstall using: `pip install hdl-checker --upgrade`\n",
"name": "hdl_checker"
},
{
"cmd": ["helm_ls", "serve"],
"desc": "https://github.com/mrjosh/helm-ls\n\nHelm Language server. (This LSP is in early development)\n\n`helm Language server` can be installed by following the instructions [here](https://github.com/mrjosh/helm-ls).\n\nThe default `cmd` assumes that the `helm_ls` binary can be found in `$PATH`.\n\nIf need Helm file highlight use [vim-helm](https://github.com/towolf/vim-helm) plugin.\n",
"name": "helm_ls"
},
{
"cmd": ["hh_client", "lsp"],
"desc": "Language server for programs written in Hack\nhttps://hhvm.com/\nhttps://github.com/facebook/hhvm\nSee below for how to setup HHVM & typechecker:\nhttps://docs.hhvm.com/hhvm/getting-started/getting-started\n ",
"name": "hhvm"
},
{
"cmd": ["hie-wrapper", "--lsp"],
"desc": "https://github.com/haskell/haskell-ide-engine\n\nthe following init_options are supported (see\nhttps://github.com/haskell/haskell-ide-engine#configuration):\n\n``` lua\ninit_options = {\n languageServerHaskell = {\n hlintOn = bool;\n maxNumberOfProblems = number;\n diagnosticsDebounceDuration = number;\n liquidOn = bool (default false);\n completionSnippetsOn = bool (default true);\n formatOnImportOn = bool (default true);\n formattingProvider = string (default \"brittany\", alternate \"floskell\");\n }\n}\n```\n",
"name": "hie"
},
{
"cmd": ["hlasm_language_server"],
"desc": " `hlasm_language_server` is a language server for the High Level Assembler language used on IBM SystemZ mainframes.\n\n To learn how to configure the HLASM language server, see the [HLASM Language Support documentation](https://github.com/eclipse-che4z/che-che4z-lsp-for-hlasm).\n ",
"name": "hlasm"
},
{
"cmd": ["haskell-language-server-wrapper", "--lsp"],
"desc": "https://github.com/haskell/haskell-language-server\n\nHaskell Language Server\n\nIf you are using HLS 1.9.0.0, enable the language server to launch on Cabal files as well:\n\n```lua\nrequire('lspconfig')['hls'].setup{\n filetypes = { 'haskell', 'lhaskell', 'cabal' },\n}\n```\n ",
"name": "hls"
},
{
"cmd": ["hoon-language-server"],
"desc": "https://github.com/urbit/hoon-language-server\n\nA language server for Hoon.\n\nThe language server can be installed via `npm install -g @hoon-language-server`\n\nStart a fake ~zod with `urbit -F zod`.\nStart the language server at the Urbit Dojo prompt with: `|start %language-server`\n",
"name": "hoon_ls"
},
{
"cmd": ["vscode-html-language-server", "--stdio"],
"desc": "https://github.com/hrsh7th/vscode-langservers-extracted\n\n`vscode-html-language-server` can be installed via `npm`:\n```sh\nnpm i -g vscode-langservers-extracted\n```\n\nNeovim does not currently include built-in snippets. `vscode-html-language-server` only provides completions when snippet support is enabled.\nTo enable completion, install a snippet plugin and add the following override to your language client capabilities during setup.\n\nThe code-formatting feature of the lsp can be controlled with the `provideFormatter` option.\n\n```lua\n--Enable (broadcasting) snippet capability for completion\nlocal capabilities = vim.lsp.protocol.make_client_capabilities()\ncapabilities.textDocument.completion.completionItem.snippetSupport = true\n\nrequire'lspconfig'.html.setup {\n capabilities = capabilities,\n}\n```\n",
"name": "html"
},
{
"cmd": ["htmx-lsp"],
"desc": "https://github.com/ThePrimeagen/htmx-lsp\n\n`htmx-lsp` can be installed via `cargo`:\n```sh\ncargo install htmx-lsp\n```\n\nLsp is still very much work in progress and experimental. Use at your own risk.\n",
"name": "htmx"
},
{
"cmd": ["hydra-lsp"],
"desc": "https://github.com/Retsediv/hydra-lsp\n\nLSP for Hydra Python package config files.\n",
"name": "hydra_lsp"
},
{
"cmd": ["hyprls", "--stdio"],
"desc": "https://github.com/hyprland-community/hyprls\n\n`hyprls` can be installed via `go`:\n```sh\ngo install github.com/ewen-lbh/hyprls/cmd/hyprls@latest\n```\n\n",
"name": "hyprls"
},
{
"cmd": ["idris2-lsp"],
"desc": "https://github.com/idris-community/idris2-lsp\n\nThe Idris 2 language server.\n\nPlugins for the Idris 2 filetype include\n[Idris2-Vim](https://github.com/edwinb/idris2-vim) (fewer features,\nstable) and [Nvim-Idris2](https://github.com/ShinKage/nvim-idris2)\n(cutting-edge, experimental).\n\nIdris2-Lsp requires a build of Idris 2 that includes the \"Idris 2 API\"\npackage. Package managers with known support for this build include the\n[AUR](https://aur.archlinux.org/packages/idris2/) and\n[Homebrew](https://formulae.brew.sh/formula/idris2#default).\n\nIf your package manager does not support the Idris 2 API, you will need\nto build Idris 2 from source. Refer to the [the Idris 2 installation\ninstructions](https://github.com/idris-lang/Idris2/blob/main/INSTALL.md)\nfor details. Steps 5 and 8 are listed as \"optional\" in that guide, but\nthey are necessary in order to make the Idris 2 API available.\n\nYou need to install a version of Idris2-Lsp that is compatible with your\nversion of Idris 2. There should be a branch corresponding to every\nreleased Idris 2 version after v0.4.0. Use the latest commit on that\nbranch. For example, if you have Idris v0.5.1, you should use the v0.5.1\nbranch of Idris2-Lsp.\n\nIf your Idris 2 version is newer than the newest Idris2-Lsp branch, use\nthe latest commit on the `master` branch, and set a reminder to check\nthe Idris2-Lsp repo for the release of a compatible versioned branch.\n",
"name": "idris2_lsp"
},
{
"cmd": ["intelephense", "--stdio"],
"desc": "https://intelephense.com/\n\n`intelephense` can be installed via `npm`:\n\n``` sh\nnpm install -g intelephense\n```\n\n``` lua\n-- See https://github.com/bmewburn/intelephense-docs/blob/master/installation.md#initialisation-options\ninit_options = {\n storagePath = \u2026, -- Optional absolute path to storage dir. Defaults to os.tmpdir().\n globalStoragePath = \u2026, -- Optional absolute path to a global storage dir. Defaults to os.homedir().\n licenceKey = \u2026, -- Optional licence key or absolute path to a text file containing the licence key.\n clearCache = \u2026, -- Optional flag to clear server state. State can also be cleared by deleting {storagePath}/intelephense\n}\n-- See https://github.com/bmewburn/intelephense-docs\nsettings = {\n intelephense = {\n files = {\n maxSize = 1000000;\n };\n };\n}\n```\n",
"name": "intelephense"
},
{
"cmd": ["janet-lsp", "--stdio"],
"desc": "https://github.com/CFiggers/janet-lsp\n\nA Language Server Protocol implementation for Janet.\n",
"name": "janet_lsp"
},
{
"desc": "https://github.com/georgewfraser/java-language-server\n\nJava language server\n\nPoint `cmd` to `lang_server_linux.sh` or the equivalent script for macOS/Windows provided by java-language-server\n",
"name": "java_language_server"
},
{
"cmd": [
"jdtls",
"-configuration",
"/build/.cache/jdtls/config",
"-data",
"/build/.cache/jdtls/workspace"
],
"desc": "https://projects.eclipse.org/projects/eclipse.jdt.ls\n\nLanguage server for Java.\n\nIMPORTANT: If you want all the features jdtls has to offer, [nvim-jdtls](https://github.com/mfussenegger/nvim-jdtls)\nis highly recommended. If all you need is diagnostics, completion, imports, gotos and formatting and some code actions\nyou can keep reading here.\n\nFor manual installation you can download precompiled binaries from the\n[official downloads site](http://download.eclipse.org/jdtls/snapshots/?d)\nand ensure that the `PATH` variable contains the `bin` directory of the extracted archive.\n\n```lua\n -- init.lua\n require'lspconfig'.jdtls.setup{}\n```\n\nYou can also pass extra custom jvm arguments with the JDTLS_JVM_ARGS environment variable as a space separated list of arguments,\nthat will be converted to multiple --jvm-arg=<param> args when passed to the jdtls script. This will allow for example tweaking\nthe jvm arguments or integration with external tools like lombok:\n\n```sh\nexport JDTLS_JVM_ARGS=\"-javaagent:$HOME/.local/share/java/lombok.jar\"\n```\n\nFor automatic installation you can use the following unofficial installers/launchers under your own risk:\n - [jdtls-launcher](https://github.com/eruizc-dev/jdtls-launcher) (Includes lombok support by default)\n ```lua\n -- init.lua\n require'lspconfig'.jdtls.setup{ cmd = { 'jdtls' } }\n ```\n ",
"name": "jdtls"
},
{
"cmd": ["jedi-language-server"],
"desc": "https://github.com/pappasam/jedi-language-server\n\n`jedi-language-server`, a language server for Python, built on top of jedi\n ",
"name": "jedi_language_server"
},
{
"cmd": ["jinja-lsp"],
"desc": "jinja-lsp enhances minijinja development experience by providing Helix/Nvim users with advanced features such as autocomplete, syntax highlighting, hover, goto definition, code actions and linting.\n\nThe file types are not detected automatically, you can register them manually (see below) or override the filetypes:\n\n```lua\nvim.filetype.add {\n extension = {\n jinja = 'jinja',\n jinja2 = 'jinja',\n j2 = 'jinja',\n },\n}\n```\n",
"name": "jinja_lsp"
},
{
"cmd": ["jq-lsp"],
"desc": "https://github.com/wader/jq-lsp Language server for jq, written using\nGo. You can install the server easily using go install:\n\n``` sh\n# install directly\ngo install github.com/wader/jq-lsp@master\n# copy binary to $PATH\ncp $(go env GOPATH)/bin/jq-lsp /usr/local/bin\n```\n\nNote: To activate properly nvim needs to know the jq filetype. You can\nadd it via:\n\n``` lua\nvim.cmd([[au BufRead,BufNewFile *.jq setfiletype jq]])\n```\n",
"name": "jqls"
},
{
"cmd": ["vscode-json-language-server", "--stdio"],
"desc": "https://github.com/hrsh7th/vscode-langservers-extracted\n\nvscode-json-language-server, a language server for JSON and JSON schema\n\n`vscode-json-language-server` can be installed via `npm`:\n```sh\nnpm i -g vscode-langservers-extracted\n```\n\n`vscode-json-language-server` only provides completions when snippet support is enabled. If you use Neovim older than v0.10 you need to enable completion, install a snippet plugin and add the following override to your language client capabilities during setup.\n\n```lua\n--Enable (broadcasting) snippet capability for completion\nlocal capabilities = vim.lsp.protocol.make_client_capabilities()\ncapabilities.textDocument.completion.completionItem.snippetSupport = true\n\nrequire'lspconfig'.jsonls.setup {\n capabilities = capabilities,\n}\n```\n",
"name": "jsonls"
},
{
"cmd": ["jsonnet-language-server"],
"desc": "https://github.com/grafana/jsonnet-language-server\n\nA Language Server Protocol (LSP) server for Jsonnet.\n\nThe language server can be installed with `go`:\n```sh\ngo install github.com/grafana/jsonnet-language-server@latest\n```\n",
"name": "jsonnet_ls"
},
{
"cmd": [
"julia",
"--startup-file=no",
"--history-file=no",
"-e",
" # Load LanguageServer.jl: attempt to load from ~/.julia/environments/nvim-lspconfig\n # with the regular load path as a fallback\n ls_install_path = joinpath(\n get(DEPOT_PATH, 1, joinpath(homedir(), \".julia\")),\n \"environments\", \"nvim-lspconfig\"\n )\n pushfirst!(LOAD_PATH, ls_install_path)\n using LanguageServer\n popfirst!(LOAD_PATH)\n depot_path = get(ENV, \"JULIA_DEPOT_PATH\", \"\")\n project_path = let\n dirname(something(\n ## 1. Finds an explicitly set project (JULIA_PROJECT)\n Base.load_path_expand((\n p = get(ENV, \"JULIA_PROJECT\", nothing);\n p === nothing ? nothing : isempty(p) ? nothing : p\n )),\n ## 2. Look for a Project.toml file in the current working directory,\n ## or parent directories, with $HOME as an upper boundary\n Base.current_project(),\n ## 3. First entry in the load path\n get(Base.load_path(), 1, nothing),\n ## 4. Fallback to default global environment,\n ## this is more or less unreachable\n Base.load_path_expand(\"@v#.#\"),\n ))\n end\n @info \"Running language server\" VERSION pwd() project_path depot_path\n server = LanguageServer.LanguageServerInstance(stdin, stdout, project_path, depot_path)\n server.runlinter = true\n run(server)\n "
],
"desc": "https://github.com/julia-vscode/julia-vscode\n\nLanguageServer.jl can be installed with `julia` and `Pkg`:\n```sh\njulia --project=~/.julia/environments/nvim-lspconfig -e 'using Pkg; Pkg.add(\"LanguageServer\")'\n```\nwhere `~/.julia/environments/nvim-lspconfig` is the location where\nthe default configuration expects LanguageServer.jl to be installed.\n\nTo update an existing install, use the following command:\n```sh\njulia --project=~/.julia/environments/nvim-lspconfig -e 'using Pkg; Pkg.update()'\n```\n\nNote: In order to have LanguageServer.jl pick up installed packages or dependencies in a\nJulia project, you must make sure that the project is instantiated:\n```sh\njulia --project=/path/to/my/project -e 'using Pkg; Pkg.instantiate()'\n```\n\nNote: The julia programming language searches for global environments within the `environments/`\nfolder of `$JULIA_DEPOT_PATH` entries. By default this simply `~/.julia/environments`\n ",
"name": "julials"
},
{
"cmd": ["kcl-language-server"],
"desc": "https://github.com/kcl-lang/kcl.nvim\n\nLanguage server for the KCL configuration and policy language.\n\n",
"name": "kcl"
},
{
"cmd": ["koka", "--language-server", "--lsstdio"],
"desc": " https://koka-lang.github.io/koka/doc/index.html\nKoka is a functional programming language with effect types and handlers.\n ",
"name": "koka"
},
{
"cmd": ["kotlin-language-server"],
"desc": " A kotlin language server which was developed for internal usage and\n released afterwards. Maintaining is not done by the original author,\n but by fwcd.\n\n It is built via gradle and developed on github.\n Source and additional description:\n https://github.com/fwcd/kotlin-language-server\n\n This server requires vim to be aware of the kotlin-filetype.\n You could refer for this capability to:\n https://github.com/udalov/kotlin-vim (recommended)\n Note that there is no LICENSE specified yet.\n\n For faster startup, you can setup caching by specifying a storagePath\n in the init_options. The default is your home directory.\n ",
"name": "kotlin_language_server"
},
{
"cmd": ["kulala-ls", "--stdio"],
"desc": "https://github.com/mistweaverco/kulala-ls\n\nA minimal language server for HTTP syntax.\n",
"name": "kulala_ls"
},
{
"cmd": [
"lean-language-server",
"--stdio",
"--",
"-M",
"4096",
"-T",
"100000"
],
"desc": "https://github.com/leanprover/lean-client-js/tree/master/lean-language-server\n\nLean installation instructions can be found\n[here](https://leanprover-community.github.io/get_started.html#regular-install).\n\nOnce Lean is installed, you can install the Lean 3 language server by\nrunning\n\n``` sh\nnpm install -g lean-language-server\n```\n\nNote: that if you're using\n[lean.nvim](https://github.com/Julian/lean.nvim), that plugin fully\nhandles the setup of the Lean language server, and you shouldn't set up\n`lean3ls` both with it and `lspconfig`.\n",
"name": "lean3ls"
},
{
"cmd": ["lake", "serve", "--"],
"desc": "https://github.com/leanprover/lean4\n\nLean installation instructions can be found\n[here](https://leanprover-community.github.io/get_started.html#regular-install).\n\nThe Lean language server is included in any Lean installation and does\nnot require any additional packages.\n\nNote: that if you're using\n[lean.nvim](https://github.com/Julian/lean.nvim), that plugin fully\nhandles the setup of the Lean language server, and you shouldn't set up\n`leanls` both with it and `lspconfig`.\n",
"name": "leanls"
},
{
"cmd": ["lelwel-ls"],
"desc": "https://github.com/0x2a-42/lelwel\n\nLanguage server for lelwel grammars.\n\nYou can install `lelwel-ls` via cargo:\n```sh\ncargo install --features=\"lsp\" lelwel\n```\n",
"name": "lelwel_ls"
},
{
"cmd": ["lemminx"],
"desc": "https://github.com/eclipse/lemminx\n\nThe easiest way to install the server is to get a binary from https://github.com/redhat-developer/vscode-xml/releases and place it on your PATH.\n\nNOTE to macOS users: Binaries from unidentified developers are blocked by default. If you trust the downloaded binary, run it once, cancel the prompt, then remove the binary from Gatekeeper quarantine with `xattr -d com.apple.quarantine lemminx`. It should now run without being blocked.\n\n",
"name": "lemminx"
},
{
"desc": "https://github.com/lexical-lsp/lexical\n\nLexical is a next-generation language server for the Elixir programming language.\n\nFollow the [Detailed Installation Instructions](https://github.com/lexical-lsp/lexical/blob/main/pages/installation.md)\n\n**By default, `lexical` doesn't have a `cmd` set.**\nThis is because nvim-lspconfig does not make assumptions about your path.\n",
"name": "lexical"
},
{
"cmd": ["lsp-ai"],
"desc": "https://github.com/SilasMarvin/lsp-ai\n\nLSP-AI is an open source language server that serves as a backend for AI-powered functionality in your favorite code\neditors. It offers features like in-editor chatting with LLMs and code completions.\n\n\nYou will need to provide configuration for the inference backends and models you want to use, as well as configure\ncompletion/code actions. See the [wiki docs](https://github.com/SilasMarvin/lsp-ai/wiki/Configuration) and\n[examples](https://github.com/SilasMarvin/lsp-ai/blob/main/examples/nvim) for more information.\n",
"name": "lsp_ai"
},
{
"cmd": ["ltex-ls"],
"desc": "https://github.com/valentjn/ltex-ls\n\nLTeX Language Server: LSP language server for LanguageTool \ud83d\udd0d\u2714\ufe0f with support for LaTeX \ud83c\udf93, Markdown \ud83d\udcdd, and others\n\nTo install, download the latest [release](https://github.com/valentjn/ltex-ls/releases) and ensure `ltex-ls` is on your path.\n\nThis server accepts configuration via the `settings` key.\n\n```lua\n settings = {\n\t\tltex = {\n\t\t\tlanguage = \"en-GB\",\n\t\t},\n\t},\n```\n\nTo support org files or R sweave, users can define a custom filetype autocommand (or use a plugin which defines these filetypes):\n\n```lua\nvim.cmd [[ autocmd BufRead,BufNewFile *.org set filetype=org ]]\n```\n",
"name": "ltex"
},
{
"cmd": ["ltex-ls-plus"],
"desc": "https://github.com/ltex-plus/ltex-ls-plus\n\nLTeX Language Server: LSP language server for LanguageTool \ud83d\udd0d\u2714\ufe0f with support for LaTeX \ud83c\udf93, Markdown \ud83d\udcdd, and others\n\nTo install, download the latest [release](https://github.com/ltex-plus/ltex-ls-plus) and ensure `ltex-ls-plus` is on your path.\n\nThis server accepts configuration via the `settings` key.\n\n```lua\n settings = {\n ltex = {\n language = \"en-GB\",\n },\n },\n```\n\nTo support org files or R sweave, users can define a custom filetype autocommand (or use a plugin which defines these filetypes):\n\n```lua\nvim.cmd [[ autocmd BufRead,BufNewFile *.org set filetype=org ]]\n```\n",
"name": "ltex_plus"
},
{
"cmd": ["lua-language-server"],
"desc": "https://github.com/luals/lua-language-server\n\nLua language server.\n\n`lua-language-server` can be installed by following the instructions\n[here](https://luals.github.io/#neovim-install).\n\nThe default `cmd` assumes that the `lua-language-server` binary can be\nfound in `$PATH`.\n\nIf you primarily use `lua-language-server` for Neovim, and want to\nprovide completions, analysis, and location handling for plugins on\nruntime path, you can use the following settings.\n\n``` lua\nrequire'lspconfig'.lua_ls.setup {\n on_init = function(client)\n if client.workspace_folders then\n local path = client.workspace_folders[1].name\n if path ~= vim.fn.stdpath('config') and (vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc')) then\n return\n end\n end\n\n client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {\n runtime = {\n -- Tell the language server which version of Lua you're using\n -- (most likely LuaJIT in the case of Neovim)\n version = 'LuaJIT'\n },\n -- Make the server aware of Neovim runtime files\n workspace = {\n checkThirdParty = false,\n library = {\n vim.env.VIMRUNTIME\n -- Depending on the usage, you might want to add additional paths here.\n -- \"${3rd}/luv/library\"\n -- \"${3rd}/busted/library\",\n }\n -- or pull in all of 'runtimepath'. NOTE: this is a lot slower and will cause issues when working on your own configuration (see https://github.com/neovim/nvim-lspconfig/issues/3189)\n -- library = vim.api.nvim_get_runtime_file(\"\", true)\n }\n })\n end,\n settings = {\n Lua = {}\n }\n}\n```\n\nSee `lua-language-server`'s\n[documentation](https://luals.github.io/wiki/settings/) for an\nexplanation of the above fields: \\*\n[Lua.runtime.path](https://luals.github.io/wiki/settings/#runtimepath)\n\\*\n[Lua.workspace.library](https://luals.github.io/wiki/settings/#workspacelibrary)\n",
"name": "lua_ls"
},
{ "cmd": ["luau-lsp", "lsp"], "name": "luau_lsp" },
{
"cmd": ["lwc-language-server", "--stdio"],
"desc": "https://github.com/forcedotcom/lightning-language-server/\n\nLanguage server for Lightning Web Components.\n\nFor manual installation, utilize the official [NPM package](https://www.npmjs.com/package/@salesforce/lwc-language-server).\nThen, configure `cmd` to run the Node script at the unpacked location:\n\n```lua\nrequire'lspconfig'.lwc_ls.setup {\n cmd = {\n 'node',\n '/path/to/node_modules/@salesforce/lwc-language-server/bin/lwc-language-server.js',\n '--stdio'\n }\n}\n```\n",
"name": "lwc_ls"
},
{
"cmd": ["m68k-lsp-server", "--stdio"],
"desc": "https://github.com/grahambates/m68k-lsp\n\nLanguage server for Motorola 68000 family assembly\n\n`m68k-lsp-server` can be installed via `npm`:\n\n```sh\nnpm install -g m68k-lsp-server\n```\n\nEnsure you are using the 68k asm syntax variant in Neovim.\n\n```lua\nvim.g.asmsyntax = 'asm68k'\n```\n",
"name": "m68k"
},
{
"cmd": ["markdown-oxide"],
"desc": "https://github.com/Feel-ix-343/markdown-oxide\n\nEditor Agnostic PKM: you bring the text editor and we\nbring the PKM.\n\nInspired by and compatible with Obsidian.\n\nCheck the readme to see how to properly setup.\n ",
"name": "markdown_oxide"
},
{
"cmd": ["marko-language-server", "--stdio"],
"desc": " https://github.com/marko-js/language-server\n\n Using the Language Server Protocol to improve Marko's developer experience.\n\n Can be installed via npm:\n ```\n npm i -g @marko/language-server\n ```\n ",
"name": "marko-js"
},
{
"cmd": ["marksman", "server"],
"desc": "https://github.com/artempyanykh/marksman\n\nMarksman is a Markdown LSP server providing completion, cross-references, diagnostics, and more.\n\nMarksman works on MacOS, Linux, and Windows and is distributed as a self-contained binary for each OS.\n\nPre-built binaries can be downloaded from https://github.com/artempyanykh/marksman/releases\n",
"name": "marksman"
},
{
"cmd": ["matlab-language-server", "--stdio"],
"desc": "https://github.com/mathworks/MATLAB-language-server\n\nMATLAB\u00ae language server implements the Microsoft\u00ae Language Server Protocol for the MATLAB language.\n",
"name": "matlab_ls"
},
{
"cmd": ["mdx-language-server", "--stdio"],
"desc": "https://github.com/mdx-js/mdx-analyzer\n\n`mdx-analyzer`, a language server for MDX\n",
"name": "mdx_analyzer"
},
{
"cmd": ["mesonlsp", "--lsp"],
"desc": "https://github.com/JCWasmx86/mesonlsp\n\nAn unofficial, unendorsed language server for meson written in C++\n",
"name": "mesonlsp"
},
{
"cmd": ["metals"],
"desc": "https://scalameta.org/metals/\n\nScala language server with rich IDE features.\n\nSee full instructions in the Metals documentation:\n\nhttps://scalameta.org/metals/docs/editors/vim#using-an-alternative-lsp-client\n\nNote: that if you're using\n[nvim-metals](https://github.com/scalameta/nvim-metals), that plugin\nfully handles the setup and installation of Metals, and you shouldn't\nset up Metals both with it and `lspconfig`.\n\nTo install Metals, make sure to have\n[coursier](https://get-coursier.io/docs/cli-installation) installed, and\nonce you do you can install the latest Metals with `cs install metals`.\n",
"name": "metals"
},
{
"cmd": ["millet"],
"desc": "https://github.com/azdavis/millet\n\nMillet, a language server for Standard ML\n\nTo use with nvim:\n\n1. Install a Rust toolchain: https://rustup.rs\n2. Clone the repo\n3. Run `cargo build --release --bin lang-srv`\n4. Move `target/release/lang-srv` to somewhere on your $PATH as `millet`\n ",
"name": "millet"
},
{
"cmd": ["mint", "ls"],
"desc": "https://www.mint-lang.com\n\nInstall Mint using the [instructions](https://www.mint-lang.com/install).\nThe language server is included since version 0.12.0.\n",
"name": "mint"
},
{
"cmd": ["mlir-lsp-server"],
"desc": "https://mlir.llvm.org/docs/Tools/MLIRLSP/#mlir-lsp-language-server--mlir-lsp-server=\n\nThe Language Server for the LLVM MLIR language\n\n`mlir-lsp-server` can be installed at the llvm-project repository\n(https://github.com/llvm/llvm-project)\n",
"name": "mlir_lsp_server"
},
{
"cmd": ["mlir-pdll-lsp-server"],
"desc": "https://mlir.llvm.org/docs/Tools/MLIRLSP/#pdll-lsp-language-server--mlir-pdll-lsp-server\n\nThe Language Server for the LLVM PDLL language\n\n`mlir-pdll-lsp-server` can be installed at the llvm-project repository\n(https://github.com/llvm/llvm-project)\n",
"name": "mlir_pdll_lsp_server"
},
{
"cmd": ["mm0-rs", "server"],
"desc": "https://github.com/digama0/mm0\n\nLanguage Server for the metamath-zero theorem prover.\n\nRequires [mm0-rs](https://github.com/digama0/mm0/tree/master/mm0-rs) to be installed\nand available on the `PATH`.\n ",
"name": "mm0_ls"
},
{
"cmd": ["mojo-lsp-server"],
"desc": "https://github.com/modularml/mojo\n\n`mojo-lsp-server` can be installed [via Modular](https://developer.modular.com/download)\n\nMojo is a new programming language that bridges the gap between research and production by combining Python syntax and ecosystem with systems programming and metaprogramming features.\n",
"name": "mojo"
},
{
"cmd": ["motoko-lsp", "--stdio"],
"desc": "https://github.com/dfinity/vscode-motoko\n\nLanguage server for the Motoko programming language.\n ",
"name": "motoko_lsp"
},
{
"cmd": ["move-analyzer"],
"desc": "https://github.com/move-language/move/tree/main/language/move-analyzer\n\nLanguage server for Move\n\nThe `move-analyzer` can be installed by running:\n\n cargo install --git https://github.com/move-language/move move-analyzer\n\nSee [`move-analyzer`'s\ndoc](https://github.com/move-language/move/blob/1b258a06e3c7d2bc9174578aac92cca3ac19de71/language/move-analyzer/editors/code/README.md#how-to-install)\nfor details.\n",
"name": "move_analyzer"
},
{
"cmd": ["dotnet", "MSBuildProjectTools.LanguageServer.Host.dll"],
"desc": "https://github.com/tintoy/msbuild-project-tools-server/\n\nMSBuild Project Tools Server can be installed by following the README.MD on the above repository.\n\nExample config:\n```lua\nlspconfig.msbuild_project_tools_server.setup {\n cmd = {'dotnet', '/path/to/server/MSBuildProjectTools.LanguageServer.Host.dll'}\n}\n```\n\nThere's no builtin filetypes for msbuild files, would require some filetype aliases:\n\n```lua\nvim.filetype.add({\n extension = {\n props = 'msbuild',\n tasks = 'msbuild',\n targets = 'msbuild',\n },\n pattern = {\n [ [[.*\\..*proj]] ] = 'msbuild',\n },\n})\n```\n\nOptionally tell treesitter to treat `msbuild` as `xml` so you can get syntax highlighting if you have the treesitter-xml-parser installed.\n\n```lua\nvim.treesitter.language.register('xml', { 'msbuild' })\n```\n",
"name": "msbuild_project_tools_server"
},
{
"cmd": ["mutt-language-server"],
"desc": "https://github.com/neomutt/mutt-language-server\n\nA language server for (neo)mutt's muttrc. It can be installed via pip.\n\n```sh\npip install mutt-language-server\n```\n ",
"name": "mutt_ls"
},
{
"desc": "https://github.com/codehz/nelua-lsp\n\nnelua-lsp is an experimental nelua language server.\n\nYou need [nelua.vim](https://github.com/stefanos82/nelua.vim/blob/main/ftdetect/nelua.vim) for nelua files to be recognized or add this to your config:\n\nin vimscript:\n```vimscript\nau BufNewFile,BufRead *.nelua setf nelua\n```\n\nin lua:\n```lua\nvim.api.nvim_create_autocmd({ \"BufNewFile\", \"BufRead\" }, { pattern = { \"*.nelua\" }, command = \"setf nelua\"})\n```\n\n**By default, nelua-lsp doesn't have a `cmd` set.** This is because nvim-lspconfig does not make assumptions about your path. You must add the following to your init.vim or init.lua to set `cmd` to the absolute path ($HOME and ~ are not expanded) of the unzipped run script or binary.\n\n```lua\nrequire'lspconfig'.nelua_lsp.setup {\n cmd = { \"nelua\", \"-L\", \"/path/to/nelua-lsp/\", \"--script\", \"/path/to/nelua-lsp/nelua-lsp.lua\" },\n}\n```\n",
"name": "nelua_lsp"
},
{
"cmd": ["neocmakelsp", "--stdio"],
"desc": "https://github.com/Decodetalkers/neocmakelsp\n\nCMake LSP Implementation\n\nNeovim does not currently include built-in snippets. `neocmakelsp` only provides completions when snippet support is enabled. To enable completion, install a snippet plugin and add the following override to your language client capabilities during setup.\n\n```lua\n--Enable (broadcasting) snippet capability for completion\nlocal capabilities = vim.lsp.protocol.make_client_capabilities()\ncapabilities.textDocument.completion.completionItem.snippetSupport = true\n\nrequire'lspconfig'.neocmake.setup {\n capabilities = capabilities,\n}\n```\n",
"name": "neocmake"
},
{
"cmd": ["java", "-jar", "nextflow-language-server-all.jar"],
"desc": "https://github.com/nextflow-io/language-server\n\nRequirements: - Java 17+\n\n`nextflow_ls` can be installed by following the instructions\n[here](https://github.com/nextflow-io/language-server#development).\n\nIf you have installed nextflow language server, you can set the `cmd`\ncustom path as follow:\n\n``` lua\nrequire'lspconfig'.nextflow_ls.setup{\n cmd = { 'java', '-jar', 'nextflow-language-server-all.jar' },\n filetypes = { 'nextflow' },\n root_dir = util.root_pattern('nextflow.config', '.git'),\n settings = {\n nextflow = {\n files = {\n exclude = { '.git', '.nf-test', 'work' },\n },\n },\n },\n}\n```\n",
"name": "nextflow_ls"
},
{
"desc": "https://github.com/elixir-tools/next-ls\n\n**By default, next-ls does not set its `cmd`. Please see the following [detailed instructions](https://www.elixir-tools.dev/docs/next-ls/installation/) for possible installation methods.**\n",
"name": "nextls"
},
{
"cmd": ["nginx-language-server"],
"desc": "https://pypi.org/project/nginx-language-server/\n\n`nginx-language-server` can be installed via pip:\n\n```sh\npip install -U nginx-language-server\n```\n ",
"name": "nginx_language_server"
},
{
"cmd": ["nls"],
"desc": "Nickel Language Server\n\nhttps://github.com/tweag/nickel\n\n`nls` can be installed with nix, or cargo, from the Nickel repository.\n```sh\ngit clone https://github.com/tweag/nickel.git\n```\n\nNix:\n```sh\ncd nickel\nnix-env -f . -i\n```\n\ncargo:\n```sh\ncd nickel/lsp/nls\ncargo install --path .\n```\n\nIn order to have lspconfig detect Nickel filetypes (a prerequisite for autostarting a server),\ninstall the [Nickel vim plugin](https://github.com/nickel-lang/vim-nickel).\n ",
"name": "nickel_ls"
},
{
"cmd": ["nil"],
"desc": "https://github.com/oxalica/nil\n\nA new language server for Nix Expression Language.\n\nIf you are using Nix with Flakes support, run `nix profile install github:oxalica/nil` to install.\nCheck the repository README for more information.\n\n_See an example config at https://github.com/oxalica/nil/blob/main/dev/nvim-lsp.nix._\n ",
"name": "nil_ls"
},
{
"cmd": ["nimlangserver"],
"desc": "https://github.com/nim-lang/langserver\n\n\n`nim-langserver` can be installed via the `nimble` package manager:\n```sh\nnimble install nimlangserver\n```\n ",
"name": "nim_langserver"
},
{
"cmd": ["nimlsp"],
"desc": "https://github.com/PMunch/nimlsp\n\n`nimlsp` can be installed via the `nimble` package manager:\n\n```sh\nnimble install nimlsp\n```\n ",
"name": "nimls"
},
{
"cmd": ["nixd"],
"desc": "https://github.com/nix-community/nixd\n\nNix language server, based on nix libraries.\n\nIf you are using Nix with Flakes support, run `nix profile install github:nix-community/nixd` to install.\nCheck the repository README for more information.\n ",
"name": "nixd"
},
{
"cmd": ["nomad-lsp"],
"desc": "https://github.com/juliosueiras/nomad-lsp\n\nWritten in Go, compilation is needed for `nomad_lsp` to be used. Please see the [original repository](https://github.com/juliosuieras/nomad-lsp).\n\nAdd the executable to your system or vim PATH and it will be set to go.\n\nNo configuration option is needed unless you choose not to add `nomad-lsp` executable to the PATH. You should know what you are doing if you choose so.\n\n```lua\nrequire('lspconfig').nomad_lsp.setup{ }\n```\n\nHowever, a `hcl.nomad` or `nomad` filetype should be defined.\n\nDescription of your jobs should be written in `.nomad` files for the LSP client to configure the server's `root_dir` configuration option.\n",
"name": "nomad_lsp"
},
{
"cmd": ["ntt", "langserver"],
"desc": "https://github.com/nokia/ntt Installation instructions can be found\n[here](https://github.com/nokia/ntt#Install). Can be configured by\npassing a \"settings\" object to `ntt.setup{}`:\n\n``` lua\nrequire('lspconfig').ntt.setup{\n settings = {\n ntt = {\n }\n }\n}\n```\n",
"name": "ntt"
},
{
"cmd": ["nu", "--lsp"],
"desc": "https://github.com/nushell/nushell\n\nNushell built-in language server.\n",
"name": "nushell"
},
{
"cmd": ["nxls", "--stdio"],
"desc": "https://github.com/nrwl/nx-console/tree/master/apps/nxls\n\nnxls, a language server for Nx Workspaces\n\n`nxls` can be installed via `npm`:\n```sh\nnpm i -g nxls\n```\n",
"name": "nxls"
},
{
"cmd": ["ocaml-language-server", "--stdio"],
"desc": "https://github.com/ocaml-lsp/ocaml-language-server\n\n`ocaml-language-server` can be installed via `npm`\n```sh\nnpm install -g ocaml-language-server\n```\n ",
"name": "ocamlls"
},
{
"cmd": ["ocamllsp"],
"desc": "https://github.com/ocaml/ocaml-lsp\n\n`ocaml-lsp` can be installed as described in [installation\nguide](https://github.com/ocaml/ocaml-lsp#installation).\n\nTo install the lsp server in a particular opam switch:\n\n``` sh\nopam install ocaml-lsp-server\n```\n",
"name": "ocamllsp"
},
{
"cmd": ["ols"],
"desc": " https://github.com/DanielGavin/ols\n\n `Odin Language Server`.\n ",
"name": "ols"
},
{
"desc": "https://github.com/omnisharp/omnisharp-roslyn OmniSharp server based on\nRoslyn workspaces\n\n`omnisharp-roslyn` can be installed by downloading and extracting a\nrelease from\n[here](https://github.com/OmniSharp/omnisharp-roslyn/releases).\nOmniSharp can also be built from source by following the instructions\n[here](https://github.com/omnisharp/omnisharp-roslyn#downloading-omnisharp).\n\nOmniSharp requires the\n[dotnet-sdk](https://dotnet.microsoft.com/download) to be installed.\n\n**By default, omnisharp-roslyn doesn't have a `cmd` set.** This is\nbecause nvim-lspconfig does not make assumptions about your path. You\nmust add the following to your init.vim or init.lua to set `cmd` to the\nabsolute path (\\$HOME and \\~ are not expanded) of the unzipped run\nscript or binary.\n\nFor `go_to_definition` to work fully, extended `textDocument/definition`\nhandler is needed, for example see\n[omnisharp-extended-lsp.nvim](https://github.com/Hoffs/omnisharp-extended-lsp.nvim)\n\n``` lua\nrequire'lspconfig'.omnisharp.setup {\n cmd = { \"dotnet\", \"/path/to/omnisharp/OmniSharp.dll\" },\n\n settings = {\n FormattingOptions = {\n -- Enables support for reading code style, naming convention and analyzer\n -- settings from .editorconfig.\n EnableEditorConfigSupport = true,\n -- Specifies whether 'using' directives should be grouped and sorted during\n -- document formatting.\n OrganizeImports = nil,\n },\n MsBuild = {\n -- If true, MSBuild project system will only load projects for files that\n -- were opened in the editor. This setting is useful for big C# codebases\n -- and allows for faster initialization of code navigation features only\n -- for projects that are relevant to code that is being edited. With this\n -- setting enabled OmniSharp may load fewer projects and may thus display\n -- incomplete reference lists for symbols.\n LoadProjectsOnDemand = nil,\n },\n RoslynExtensionsOptions = {\n -- Enables support for roslyn analyzers, code fixes and rulesets.\n EnableAnalyzersSupport = nil,\n -- Enables support for showing unimported types and unimported extension\n -- methods in completion lists. When committed, the appropriate using\n -- directive will be added at the top of the current file. This option can\n -- have a negative impact on initial completion responsiveness,\n -- particularly for the first few completion sessions after opening a\n -- solution.\n EnableImportCompletion = nil,\n -- Only run analyzers against open files when 'enableRoslynAnalyzers' is\n -- true\n AnalyzeOpenDocumentsOnly = nil,\n },\n Sdk = {\n -- Specifies whether to include preview versions of the .NET SDK when\n -- determining which version to use for project loading.\n IncludePrereleases = true,\n },\n },\n}\n```\n",
"name": "omnisharp"
},
{
"cmd": ["opencl-language-server"],
"desc": "https://github.com/Galarius/opencl-language-server\n\nBuild instructions can be found [here](https://github.com/Galarius/opencl-language-server/blob/main/_dev/build.md).\n\nPrebuilt binaries are available for Linux, macOS and Windows [here](https://github.com/Galarius/opencl-language-server/releases).\n",
"name": "opencl_ls"
},
{
"desc": "[Language server](https://github.com/vscode-abl/vscode-abl) for Progress OpenEdge ABL.\n\nFor manual installation, download abl-lsp.jar from the [VSCode\nextension](https://github.com/vscode-abl/vscode-abl/releases/latest).\n\nConfiguration\n\n```lua\nrequire('lspconfig').['openedge_ls'].setup {\n oe_jar_path = '/path/to/abl-lsp.jar',\n dlc = '12.2:/path/to/dlc-12.2', -- Version number and OpenEdge root directory (colon separator)\n debug = false, -- Set to true for debug logging\n trace = false -- Set to true for trace logging (REALLY verbose)\n}\n```\n",
"name": "openedge_ls"
},
{
"cmd": ["openscad-language-server"],
"desc": "https://github.com/dzhu/openscad-language-server\n\nA Language Server Protocol server for OpenSCAD\n\nYou can build and install `openscad-language-server` binary with `cargo`:\n```sh\ncargo install openscad-language-server\n```\n\nVim does not have built-in syntax for the `openscad` filetype currently.\n\nThis can be added via an autocmd:\n\n```lua\nvim.cmd [[ autocmd BufRead,BufNewFile *.scad set filetype=openscad ]]\n```\n\nor by installing a filetype plugin such as https://github.com/sirtaj/vim-openscad\n",
"name": "openscad_ls"
},
{
"cmd": ["openscad-lsp", "--stdio"],
"desc": "https://github.com/Leathong/openscad-LSP\n\nA Language Server Protocol server for OpenSCAD\n\nYou can build and install `openscad-lsp` binary with `cargo`:\n```sh\ncargo install openscad-lsp\n```\n",
"name": "openscad_lsp"
},
{
"cmd": ["oxc_language_server"],
"desc": "https://oxc.rs\n\nA collection of JavaScript tools written in Rust.\n\n```sh\nnpm install [-g] oxlint\n```\n",
"name": "oxlint"
},
{
"cmd": ["pact-lsp"],
"desc": "https://github.com/kadena-io/pact-lsp\n\nThe Pact language server\n ",
"name": "pact_ls"
},
{
"cmd": ["pasls"],
"desc": "https://github.com/genericptr/pascal-language-server\n\nAn LSP server implementation for Pascal variants that are supported by\nFree Pascal, including Object Pascal. It uses CodeTools from Lazarus as\nbackend.\n\nFirst set `cmd` to the Pascal lsp binary.\n\nCustomization options are passed to pasls as environment variables for\nexample in your `.bashrc`:\n\n``` bash\nexport FPCDIR='/usr/lib/fpc/src' # FPC source directory (This is the only required option for the server to work).\nexport PP='/usr/lib/fpc/3.2.2/ppcx64' # Path to the Free Pascal compiler executable.\nexport LAZARUSDIR='/usr/lib/lazarus' # Path to the Lazarus sources.\nexport FPCTARGET='' # Target operating system for cross compiling.\nexport FPCTARGETCPU='x86_64' # Target CPU for cross compiling.\n```\n",
"name": "pasls"
},
{
"cmd": ["pbls"],
"desc": "https://git.sr.ht/~rrc/pbls\n\nPrerequisites: Ensure protoc is on your $PATH.\n\n`pbls` can be installed via `cargo install`:\n```sh\ncargo install --git https://git.sr.ht/~rrc/pbls\n```\n\npbls is a Language Server for protobuf\n",
"name": "pbls"
},
{
"cmd": [
"perl",
"-MPerl::LanguageServer",
"-e",
"Perl::LanguageServer::run",
"--",
"--port 13603",
"--nostdio 0"
],
"desc": "https://github.com/richterger/Perl-LanguageServer/tree/master/clients/vscode/perl\n\n`Perl-LanguageServer`, a language server for Perl.\n\nTo use the language server, ensure that you have Perl::LanguageServer installed and perl command is on your path.\n",
"name": "perlls"
},
{
"cmd": ["perlnavigator"],
"desc": "https://github.com/bscan/PerlNavigator\n\nA Perl language server. It can be installed via npm:\n\n```sh\nnpm i -g perlnavigator-server\n```\n\nAt minimum, you will need `perl` in your path. If you want to use a non-standard `perl` you will need to set your configuration like so:\n```lua\nsettings = {\n perlnavigator = {\n perlPath = '/some/odd/location/my-perl'\n }\n}\n```\n\nThe `contributes.configuration.properties` section of `perlnavigator`'s `package.json` has all available configuration settings. All\nsettings have a reasonable default, but, at minimum, you may want to point `perlnavigator` at your `perltidy` and `perlcritic` configurations.\n",
"name": "perlnavigator"
},
{
"cmd": ["pls"],
"desc": "https://github.com/FractalBoy/perl-language-server\nhttps://metacpan.org/pod/PLS\n\n`PLS`, another language server for Perl.\n\nTo use the language server, ensure that you have PLS installed and that it is in your path\n",
"name": "perlpls"
},
{
"cmd": ["pest-language-server"],
"desc": "https://github.com/pest-parser/pest-ide-tools\n\nLanguage server for pest grammars.\n",
"name": "pest_ls"
},
{
"cmd": [
"phan",
"-m",
"json",
"--no-color",
"--no-progress-bar",
"-x",
"-u",
"-S",
"--language-server-on-stdin",
"--allow-polyfill-parser"
],
"desc": "https://github.com/phan/phan\n\nInstallation: https://github.com/phan/phan#getting-started\n",
"name": "phan"
},
{
"cmd": ["phpactor", "language-server"],
"desc": "https://github.com/phpactor/phpactor\n\nInstallation:\nhttps://phpactor.readthedocs.io/en/master/usage/standalone.html#global-installation\n",
"name": "phpactor"
},
{
"cmd": ["pico8-ls", "--stdio"],
"desc": "https://github.com/japhib/pico8-ls\n\nFull language support for the PICO-8 dialect of Lua.\n",
"name": "pico8_ls"
},
{
"cmd": ["pkgbuild-language-server"],
"desc": "https://github.com/Freed-Wu/pkgbuild-language-server\n\nLanguage server for ArchLinux/Windows Msys2's PKGBUILD.\n",
"name": "pkgbuild_language_server"
},
{
"cmd": ["plz", "tool", "lps"],
"desc": "https://github.com/thought-machine/please\n\nHigh-performance extensible build system for reproducible multi-language builds.\n\nThe `plz` binary will automatically install the LSP for you on first run\n",
"name": "please"
},
{
"cmd": ["poryscript-pls"],
"desc": "https://github.com/huderlem/poryscript-pls\n\nLanguage server for poryscript (a high level scripting language for GBA-era Pok\u00e9mon decompilation projects)\n ",
"name": "poryscript_pls"
},
{
"cmd": ["postgres_lsp", "lsp-proxy"],
"desc": "https://github.com/supabase/postgres_lsp\n\nA Language Server for Postgres\n ",
"name": "postgres_lsp"
},
{
"desc": "https://github.com/PowerShell/PowerShellEditorServices\n\nLanguage server for PowerShell.\n\nTo install, download and extract PowerShellEditorServices.zip from the\n[releases](https://github.com/PowerShell/PowerShellEditorServices/releases).\nTo configure the language server, set the property `bundle_path` to the\nroot of the extracted PowerShellEditorServices.zip.\n\nThe default configuration doesn't set `cmd` unless `bundle_path` is\nspecified.\n\n``` lua\nrequire'lspconfig'.powershell_es.setup{\n bundle_path = 'c:/w/PowerShellEditorServices',\n}\n```\n\nBy default the languageserver is started in `pwsh` (PowerShell Core).\nThis can be changed by specifying `shell`.\n\n``` lua\nrequire'lspconfig'.powershell_es.setup{\n bundle_path = 'c:/w/PowerShellEditorServices',\n shell = 'powershell.exe',\n}\n```\n\nNote that the execution policy needs to be set to `Unrestricted` for the\nlanguageserver run under PowerShell\n\nIf necessary, specific `cmd` can be defined instead of `bundle_path`.\nSee\n[PowerShellEditorServices](https://github.com/PowerShell/PowerShellEditorServices#stdio)\nto learn more.\n\n``` lua\nrequire'lspconfig'.powershell_es.setup{\n cmd = {'pwsh', '-NoLogo', '-NoProfile', '-Command', \"c:/PSES/Start-EditorServices.ps1 ...\"}\n}\n```\n",
"name": "powershell_es"
},
{
"cmd": ["prisma-language-server", "--stdio"],
"desc": "Language Server for the Prisma JavaScript and TypeScript ORM\n\n`@prisma/language-server` can be installed via npm\n```sh\nnpm install -g @prisma/language-server\n```\n",
"name": "prismals"
},
{
"cmd": [
"swipl",
"-g",
"use_module(library(lsp_server)).",
"-g",
"lsp_server:main",
"-t",
"halt",
"--",
"stdio"
],
"desc": " https://github.com/jamesnvc/lsp_server\n\n Language Server Protocol server for SWI-Prolog\n ",
"name": "prolog_ls"
},
{
"cmd": ["prosemd-lsp", "--stdio"],
"desc": "https://github.com/kitten/prosemd-lsp\n\nAn experimental LSP for Markdown.\n\nPlease see the manual installation instructions:\nhttps://github.com/kitten/prosemd-lsp#manual-installation\n",
"name": "prosemd_lsp"
},
{
"cmd": ["protols"],
"desc": "https://github.com/coder3101/protols\n\n`protols` can be installed via `cargo`:\n```sh\ncargo install protols\n```\n\nA Language Server for proto3 files. It uses tree-sitter and runs in single file mode.\n",
"name": "protols"
},
{
"cmd": ["psalm", "--language-server"],
"desc": "https://github.com/vimeo/psalm\n\nCan be installed with composer.\n```sh\ncomposer global require vimeo/psalm\n```\n",
"name": "psalm"
},
{
"cmd": ["pug-lsp"],
"desc": "https://github.com/opa-oz/pug-lsp\n\nAn implementation of the Language Protocol Server for [Pug.js](http://pugjs.org)\n\nPugLSP can be installed via `go get github.com/opa-oz/pug-lsp`, or manually downloaded from [releases page](https://github.com/opa-oz/pug-lsp/releases)\n ",
"name": "pug"
},
{
"cmd": ["puppet-languageserver", "--stdio"],
"desc": "LSP server for Puppet.\n\nInstallation:\n\n- Clone the editor-services repository:\n https://github.com/puppetlabs/puppet-editor-services\n\n- Navigate into that directory and run: `bundle install`\n\n- Install the 'puppet-lint' gem: `gem install puppet-lint`\n\n- Add that repository to $PATH.\n\n- Ensure you can run `puppet-languageserver` from outside the editor-services directory.\n",
"name": "puppet"
},
{
"cmd": ["purescript-language-server", "--stdio"],
"desc": "https://github.com/nwolverson/purescript-language-server\n\nThe `purescript-language-server` can be added to your project and `$PATH` via\n\n* JavaScript package manager such as npm, pnpm, Yarn, et al.\n* Nix under the `nodePackages` and `nodePackages_latest` package sets\n",
"name": "purescriptls"
},
{
"cmd": ["pylsp"],
"desc": "https://github.com/python-lsp/python-lsp-server\n\nA Python 3.6+ implementation of the Language Server Protocol.\n\nSee the [project's README](https://github.com/python-lsp/python-lsp-server) for installation instructions.\n\nConfiguration options are documented [here](https://github.com/python-lsp/python-lsp-server/blob/develop/CONFIGURATION.md).\nIn order to configure an option, it must be translated to a nested Lua table and included in the `settings` argument to the `setup{}` function.\nFor example, in order to set the `pylsp.plugins.pycodestyle.ignore` option:\n```lua\nrequire'lspconfig'.pylsp.setup{\n settings = {\n pylsp = {\n plugins = {\n pycodestyle = {\n ignore = {'W391'},\n maxLineLength = 100\n }\n }\n }\n }\n}\n```\n\nNote: This is a community fork of `pyls`.\n ",
"name": "pylsp"
},
{
"cmd": ["pylyzer", "--server"],
"desc": " https://github.com/mtshiba/pylyzer\n\n `pylyzer`, a fast static code analyzer & language server for Python.\n ",
"name": "pylyzer"
},
{
"cmd": ["pyre", "persistent"],
"desc": "https://pyre-check.org/\n\n`pyre` a static type checker for Python 3.\n\n`pyre` offers an extremely limited featureset. It currently only supports diagnostics,\nwhich are triggered on save.\n\nDo not report issues for missing features in `pyre` to `lspconfig`.\n\n",
"name": "pyre"
},
{
"cmd": ["pyright-langserver", "--stdio"],
"desc": "https://github.com/microsoft/pyright\n\n`pyright`, a static type checker and language server for python\n",
"name": "pyright"
},
{
"cmd": ["qml-lsp"],
"desc": "https://invent.kde.org/sdk/qml-lsp\n\nLSP implementation for QML (autocompletion, live linting, etc. in editors)\n ",
"name": "qml_lsp"
},
{
"cmd": ["qmlls"],
"desc": "https://github.com/qt/qtdeclarative\n\nLSP implementation for QML (autocompletion, live linting, etc. in editors),\n ",
"name": "qmlls"
},
{
"cmd": ["quick-lint-js", "--lsp-server"],
"desc": "https://quick-lint-js.com/\n\nquick-lint-js finds bugs in JavaScript programs.\n\nSee installation [instructions](https://quick-lint-js.com/install/)\n",
"name": "quick_lint_js"
},
{
"cmd": ["R", "--no-echo", "-e", "languageserver::run()"],
"desc": "[languageserver](https://github.com/REditorSupport/languageserver) is an\nimplementation of the Microsoft's Language Server Protocol for the R\nlanguage.\n\nIt is released on CRAN and can be easily installed by\n\n```r\ninstall.packages(\"languageserver\")\n```\n",
"name": "r_language_server"
},
{
"cmd": ["racket", "--lib", "racket-langserver"],
"desc": "[https://github.com/jeapostrophe/racket-langserver](https://github.com/jeapostrophe/racket-langserver)\n\nThe Racket language server. This project seeks to use\n[DrRacket](https://github.com/racket/drracket)'s public API to provide\nfunctionality that mimics DrRacket's code tools as closely as possible.\n\nInstall via `raco`: `raco pkg install racket-langserver`\n",
"name": "racket_langserver"
},
{
"cmd": [],
"desc": "https://github.com/bscan/RakuNavigator A Raku language server **By\ndefault, raku_navigator doesn't have a `cmd` set.** This is because\nnvim-lspconfig does not make assumptions about your path. You have to\ninstall the language server manually. Clone the RakuNavigator repo,\ninstall based on the\n[instructions](https://github.com/bscan/raku_Navigator#installation-for-other-editors),\nand point `cmd` to `server.js` inside the `server/out` directory:\n\n``` lua\ncmd = {'node', '<path_to_repo>/server/out/server.js', '--stdio'}\n```\n\nAt minimum, you will need `raku` in your path. If you want to use a\nnon-standard `raku` you will need to set your configuration like so:\n\n``` lua\nsettings = {\n raku_navigator = {\n rakuPath = '/some/odd/location/my-raku'\n }\n}\n```\n\nThe `contributes.configuration.properties` section of `raku_navigator`'s\n`package.json` has all available configuration settings. All settings\nhave a reasonable default, but, at minimum, you may want to point\n`raku_navigator` at your `raku_tidy` and `raku_critic` configurations.\n",
"name": "raku_navigator"
},
{
"cmd": ["reason-language-server"],
"desc": "Reason language server\n\nYou can install reason language server from [reason-language-server](https://github.com/jaredly/reason-language-server) repository.\n",
"name": "reason_ls"
},
{
"cmd": ["regal", "language-server"],
"desc": "https://github.com/StyraInc/regal\n\nA linter for Rego, with support for running as an LSP server.\n\n`regal` can be installed by running:\n```sh\ngo install github.com/StyraInc/regal@latest\n```\n ",
"name": "regal"
},
{
"cmd": ["regols"],
"desc": "https://github.com/kitagry/regols\n\nOPA Rego language server.\n\n`regols` can be installed by running:\n```sh\ngo install github.com/kitagry/regols@latest\n```\n ",
"name": "regols"
},
{
"cmd": ["relay-compiler", "lsp"],
"desc": " https://github.com/facebook/relay\n `Relay` is a JavaScript framework for building data-driven React applications\n\n Setup:\n\n - Make sure you have a Relay config file somewhere in your project.\n - We support standard config file formats (`.yml`, `.js`, `.json`), and the the `relay` field in your `package.json`\n - Make sure you have the `relay-compiler` installed in your project. The bare minimum is v13.\n - Make sure you are able to run the `relay-compiler` command from the command line. If `yarn relay-compiler` works, it's very likely that the LSP will work.\n - Remove / disable any conflicting GraphQL LSPs you have installed.\n\n Relay LSP is a part of the Relay Compiler binary and available when adding `relay-compiler` to your project's devDependencies.\n\n ```lua\n require'lspconfig'.relay_lsp.setup {\n -- (default: false) Whether or not we should automatically start\n -- the Relay Compiler in watch mode when you open a project\n auto_start_compiler = false,\n\n\n -- (default: null) Path to a relay config relative to the\n -- `root_dir`. Without this, the compiler will search for your\n -- config. This is helpful if your relay project is in a nested\n -- directory.\n path_to_config = nil,\n }\n ```\n ",
"name": "relay_lsp"
},
{
"cmd": ["remark-language-server", "--stdio"],
"desc": "https://github.com/remarkjs/remark-language-server\n\n`remark-language-server` can be installed via `npm`:\n\n``` sh\nnpm install -g remark-language-server\n```\n\n`remark-language-server` uses the same [configuration\nfiles](https://github.com/remarkjs/remark/tree/main/packages/remark-cli#example-config-files-json-yaml-js)\nas `remark-cli`.\n\nThis uses a plugin based system. Each plugin needs to be installed\nlocally using `npm` or `yarn`.\n\nFor example, given the following `.remarkrc.json`:\n\n``` json\n{\n \"presets\": [\n \"remark-preset-lint-recommended\"\n ]\n}\n```\n\n`remark-preset-lint-recommended` needs to be installed in the local\nproject:\n\n``` sh\nnpm install remark-preset-lint-recommended\n```\n",
"name": "remark_ls"
},
{
"cmd": ["rescript-language-server", "--stdio"],
"desc": "https://github.com/rescript-lang/rescript-vscode/tree/master/server\n\nReScript Language Server can be installed via npm:\n\n``` sh\nnpm install -g @rescript/language-server\n```\n\nSee\n[package.json](https://github.com/rescript-lang/rescript-vscode/blob/master/package.json#L139)\nfor init_options supported.\n\nFor example, in order to disable the `inlayHints` option:\n\n``` lua\nrequire'lspconfig'.pylsp.setup{\n settings = {\n rescript = {\n settings = {\n inlayHints = { enable = false },\n },\n },\n }\n}\n```\n",
"name": "rescriptls"
},
{
"cmd": ["rls"],
"desc": "https://github.com/rust-lang/rls\n\nrls, a language server for Rust\n\nSee https://github.com/rust-lang/rls#setup to setup rls itself. See\nhttps://github.com/rust-lang/rls#configuration for rls-specific\nsettings. All settings listed on the rls configuration section of the\nreadme must be set under settings.rust as follows:\n\n``` lua\nnvim_lsp.rls.setup {\n settings = {\n rust = {\n unstable_features = true,\n build_on_save = false,\n all_features = true,\n },\n },\n}\n```\n\nIf you want to use rls for a particular build, eg nightly, set cmd as\nfollows:\n\n``` lua\ncmd = {\"rustup\", \"run\", \"nightly\", \"rls\"}\n```\n",
"name": "rls"
},
{
"cmd": ["rnix-lsp"],
"desc": "https://github.com/nix-community/rnix-lsp\n\nA language server for Nix providing basic completion and formatting via nixpkgs-fmt.\n\nTo install manually, run `cargo install rnix-lsp`. If you are using nix, rnix-lsp is in nixpkgs.\n\nThis server accepts configuration via the `settings` key.\n\n ",
"name": "rnix"
},
{
"cmd": ["robotcode", "language-server"],
"desc": "https://robotcode.io\n\nRobotCode - Language Server Protocol implementation for Robot Framework.\n",
"name": "robotcode"
},
{
"cmd": ["robotframework_ls"],
"desc": "https://github.com/robocorp/robotframework-lsp\n\nLanguage Server Protocol implementation for Robot Framework.\n",
"name": "robotframework_ls"
},
{
"cmd": ["roc_language_server"],
"desc": "https://github.com/roc-lang/roc/tree/main/crates/language_server#roc_language_server\n\nThe built-in language server for the Roc programming language.\n[Installation](https://github.com/roc-lang/roc/tree/main/crates/language_server#installing)\n",
"name": "roc_ls"
},
{
"cmd": ["rome", "lsp-proxy"],
"desc": "https://rome.tools\n\nLanguage server for the Rome Frontend Toolchain.\n\n(Unmaintained, use [Biome](https://biomejs.dev/blog/annoucing-biome) instead.)\n\n```sh\nnpm install [-g] rome\n```\n",
"name": "rome"
},
{
"cmd": ["rubocop", "--lsp"],
"desc": "https://github.com/rubocop/rubocop\n ",
"name": "rubocop"
},
{
"cmd": ["ruby-lsp"],
"desc": "https://shopify.github.io/ruby-lsp/\n\nThis gem is an implementation of the language server protocol specification for\nRuby, used to improve editor features.\n\nInstall the gem. There's no need to require it, since the server is used as a\nstandalone executable.\n\n```sh\ngem install ruby-lsp\n```\n ",
"name": "ruby_lsp"
},
{
"cmd": ["ruff", "server"],
"desc": "https://github.com/astral-sh/ruff\n\nA Language Server Protocol implementation for Ruff, an extremely fast Python linter and code formatter, written in Rust. It can be installed via `pip`.\n\n```sh\npip install ruff\n```\n\n**Available in Ruff `v0.4.5` in beta and stabilized in Ruff `v0.5.3`.**\n\nThis is the new built-in language server written in Rust. It supports the same feature set as `ruff-lsp`, but with superior performance and no installation required. Note that the `ruff-lsp` server will continue to be maintained until further notice.\n\nServer settings can be provided via:\n\n```lua\nrequire('lspconfig').ruff.setup({\n init_options = {\n settings = {\n -- Server settings should go here\n }\n }\n})\n```\n\nRefer to the [documentation](https://docs.astral.sh/ruff/editors/) for more details.\n\n ",
"name": "ruff"
},
{
"cmd": ["ruff-lsp"],
"desc": "https://github.com/astral-sh/ruff-lsp\n\nA Language Server Protocol implementation for Ruff, an extremely fast Python linter and code transformation tool, written in Rust. It can be installed via pip.\n\n```sh\npip install ruff-lsp\n```\n\nExtra CLI arguments for `ruff` can be provided via\n\n```lua\nrequire'lspconfig'.ruff_lsp.setup{\n init_options = {\n settings = {\n -- Any extra CLI arguments for `ruff` go here.\n args = {},\n }\n }\n}\n```\n\n ",
"name": "ruff_lsp"
},
{
"cmd": ["rune-languageserver"],
"desc": "https://crates.io/crates/rune-languageserver\n\nA language server for the [Rune](https://rune-rs.github.io/) Language,\nan embeddable dynamic programming language for Rust\n ",
"name": "rune_languageserver"
},
{
"cmd": ["rust-analyzer"],
"desc": "https://github.com/rust-lang/rust-analyzer\n\nrust-analyzer (aka rls 2.0), a language server for Rust\n\nSee [docs](https://rust-analyzer.github.io/book/configuration.html) for\nextra settings. The settings can be used like this:\n\n``` lua\nrequire'lspconfig'.rust_analyzer.setup{\n settings = {\n ['rust-analyzer'] = {\n diagnostics = {\n enable = false;\n }\n }\n }\n}\n```\n\nNote: do not set `init_options` for this LS config, it will be\nautomatically populated by the contents of settings\\[\"rust-analyzer\"\\]\nper\nhttps://github.com/rust-lang/rust-analyzer/blob/eb5da56d839ae0a9e9f50774fa3eb78eb0964550/docs/dev/lsp-extensions.md?plain=1#L26.\n",
"name": "rust_analyzer"
},
{
"cmd": ["salt_lsp_server"],
"desc": "Language server for Salt configuration files.\nhttps://github.com/dcermak/salt-lsp\n\nThe language server can be installed with `pip`:\n```sh\npip install salt-lsp\n```\n ",
"name": "salt_ls"
},
{
"cmd": [
"scheme-langserver",
"~/.scheme-langserver.log",
"enable",
"disable"
],
"desc": "https://github.com/ufo5260987423/scheme-langserver\n`scheme-langserver`, a language server protocol implementation for scheme.\nAnd for nvim user, please add .sls to scheme file extension list.\n",
"name": "scheme_langserver"
},
{
"cmd": ["scry"],
"desc": "https://github.com/crystal-lang-tools/scry\n\nCrystal language server.\n",
"name": "scry"
},
{
"cmd": ["selene-3p-language-server"],
"desc": "https://github.com/antonk52/lua-3p-language-servers\n\n3rd party Language Server for Selene lua linter\n",
"name": "selene3p_ls"
},
{
"cmd": ["serve-d"],
"desc": " https://github.com/Pure-D/serve-d\n\n `Microsoft language server protocol implementation for D using workspace-d.`\n Download a binary from https://github.com/Pure-D/serve-d/releases and put it in your $PATH.\n ",
"name": "serve_d"
},
{
"cmd": ["shopify", "theme", "language-server"],
"desc": "https://shopify.dev/docs/api/shopify-cli\n\n[Language Server](https://shopify.dev/docs/themes/tools/cli/language-server) and Theme Check (linter) for Shopify themes.\n\n`shopify` can be installed via npm `npm install -g @shopify/cli`.\n\nNote: This LSP already includes Theme Check so you don't need to use the `theme_check` server configuration as well.\n",
"name": "shopify_theme_ls"
},
{
"cmd": ["sixtyfps-lsp"],
"desc": "https://github.com/sixtyfpsui/sixtyfps\n`SixtyFPS`'s language server\n\nYou can build and install `sixtyfps-lsp` binary with `cargo`:\n```sh\ncargo install sixtyfps-lsp\n```\n\nVim does not have built-in syntax for the `sixtyfps` filetype currently.\n\nThis can be added via an autocmd:\n\n```lua\nvim.cmd [[ autocmd BufRead,BufNewFile *.60 set filetype=sixtyfps ]]\n```\n\nor by installing a filetype plugin such as https://github.com/RustemB/sixtyfps-vim\n",
"name": "sixtyfps"
},
{
"cmd": ["slangd"],
"desc": "https://github.com/shader-slang/slang\n\nThe `slangd` binary can be downloaded as part of [slang\nreleases](https://github.com/shader-slang/slang/releases) or by\n[building `slang` from\nsource](https://github.com/shader-slang/slang/blob/master/docs/building.md).\n\nThe server can be configured by passing a \"settings\" object to\n`slangd.setup{}`:\n\n``` lua\nrequire('lspconfig').slangd.setup{\n settings = {\n slang = {\n predefinedMacros = {\"MY_VALUE_MACRO=1\"},\n inlayHints = {\n deducedTypes = true,\n parameterNames = true,\n }\n }\n }\n}\n```\n\nAvailable options are documented\n[here](https://github.com/shader-slang/slang-vscode-extension/tree/main?tab=readme-ov-file#configurations)\nor in more detail\n[here](https://github.com/shader-slang/slang-vscode-extension/blob/main/package.json#L70).\n",
"name": "slangd"
},
{
"cmd": ["slint-lsp"],
"desc": "https://github.com/slint-ui/slint\n`Slint`'s language server\n\nYou can build and install `slint-lsp` binary with `cargo`:\n```sh\ncargo install slint-lsp\n```\n\nVim does not have built-in syntax for the `slint` filetype at this time.\n\nThis can be added via an autocmd:\n\n```lua\nvim.cmd [[ autocmd BufRead,BufNewFile *.slint set filetype=slint ]]\n```\n",
"name": "slint_lsp"
},
{
"cmd": ["smarty-language-server", "--stdio"],
"desc": "https://github.com/landeaux/vscode-smarty-langserver-extracted\n\nLanguage server for Smarty.\n\n`smarty-language-server` can be installed via `npm`:\n\n```sh\nnpm i -g vscode-smarty-langserver-extracted\n```\n",
"name": "smarty_ls"
},
{
"cmd": ["smithy-language-server", "0"],
"desc": "https://github.com/awslabs/smithy-language-server\n\n`Smithy Language Server`, A Language Server Protocol implementation for the Smithy IDL\n",
"name": "smithy_ls"
},
{
"cmd": ["snakeskin-cli", "lsp", "--stdio"],
"desc": "https://www.npmjs.com/package/@snakeskin/cli\n\n`snakeskin cli` can be installed via `npm`:\n```sh\nnpm install -g @snakeskin/cli\n```\n",
"name": "snakeskin_ls"
},
{
"cmd": ["snyk-ls"],
"desc": "https://github.com/snyk/snyk-ls\n\nLSP for Snyk Open Source, Snyk Infrastructure as Code, and Snyk Code.\n",
"name": "snyk_ls"
},
{
"cmd": ["solang", "language-server", "--target", "evm"],
"desc": "A language server for Solidity\n\nSee the [documentation](https://solang.readthedocs.io/en/latest/installing.html) for installation instructions.\n\nThe language server only provides the following capabilities:\n* Syntax highlighting\n* Diagnostics\n* Hover\n\nThere is currently no support for completion, goto definition, references, or other functionality.\n\n",
"name": "solang"
},
{
"cmd": ["solargraph", "stdio"],
"desc": "https://solargraph.org/\n\nsolargraph, a language server for Ruby\n\nYou can install solargraph via gem install.\n\n```sh\ngem install --user-install solargraph\n```\n ",
"name": "solargraph"
},
{
"cmd": ["solc", "--lsp"],
"desc": "https://docs.soliditylang.org/en/latest/installing-solidity.html\n\nsolc is the native language server for the Solidity language.\n",
"name": "solc"
},
{
"cmd": ["solidity-ls", "--stdio"],
"desc": "https://github.com/qiuxiang/solidity-ls\n\nnpm i solidity-ls -g\n\nMake sure that solc is installed and it's the same version of the file. solc-select is recommended.\n\nSolidity language server is a LSP with autocomplete, go to definition and diagnostics.\n\nIf you use brownie, use this root_dir:\nroot_dir = util.root_pattern('brownie-config.yaml', '.git')\n\non includePath, you can add an extra path to search for external libs, on remapping you can remap lib <> path, like:\n\n```lua\n{ solidity = { includePath = '/Users/your_user/.brownie/packages/', remapping = { [\"@OpenZeppelin/\"] = 'OpenZeppelin/openzeppelin-contracts@4.6.0/' } } }\n```\n\n**For brownie users**\nChange the root_dir to:\n\n```lua\nroot_pattern(\"brownie-config.yaml\", \".git\")\n```\n\nThe best way of using it is to have a package.json in your project folder with the packages that you will use.\nAfter installing with package.json, just create a `remappings.txt` with:\n\n```\n@OpenZeppelin/=node_modules/OpenZeppelin/openzeppelin-contracts@4.6.0/\n```\n\nYou can omit the node_modules as well.\n",
"name": "solidity"
},
{
"cmd": ["vscode-solidity-server", "--stdio"],
"desc": "https://github.com/juanfranblanco/vscode-solidity\n\n`vscode-solidity-server` can be installed via `npm`:\n\n```sh\nnpm install -g vscode-solidity-server\n```\n\n`vscode-solidity-server` is a language server for the Solidity language ported from the VSCode \"solidity\" extension.\n",
"name": "solidity_ls"
},
{
"cmd": ["nomicfoundation-solidity-language-server", "--stdio"],
"desc": "https://github.com/NomicFoundation/hardhat-vscode/blob/development/server/README.md\n\n`nomicfoundation-solidity-language-server` can be installed via `npm`:\n\n```sh\nnpm install -g @nomicfoundation/solidity-language-server\n```\n\nA language server for the Solidity programming language, built by the Nomic Foundation for the Ethereum community.\n",
"name": "solidity_ls_nomicfoundation"
},
{
"cmd": ["some-sass-language-server", "--stdio"],
"desc": "\nhttps://github.com/wkillerud/some-sass/tree/main/packages/language-server\n\n`some-sass-language-server` can be installed via `npm`:\n\n```sh\nnpm i -g some-sass-language-server\n```\n\nThe language server provides:\n\n- Full support for @use and @forward, including aliases, prefixes and hiding.\n- Workspace-wide code navigation and refactoring, such as Rename Symbol.\n- Rich documentation through SassDoc.\n- Language features for %placeholder-selectors, both when using them and writing them.\n- Suggestions and hover info for built-in Sass modules, when used with @use.\n\n",
"name": "somesass_ls"
},
{
"cmd": ["srb", "tc", "--lsp"],
"desc": "https://sorbet.org\n\nSorbet is a fast, powerful type checker designed for Ruby.\n\nYou can install Sorbet via gem install. You might also be interested in how to set\nSorbet up for new projects: https://sorbet.org/docs/adopting.\n\n```sh\ngem install sorbet\n```\n ",
"name": "sorbet"
},
{
"cmd": ["sourcekit-lsp"],
"desc": "https://github.com/apple/sourcekit-lsp\n\nLanguage server for Swift and C/C++/Objective-C.\n ",
"name": "sourcekit"
},
{
"cmd": ["sourcery", "lsp"],
"desc": "https://github.com/sourcery-ai/sourcery\n\nRefactor Python instantly using the power of AI.\n\nIt requires the init_options param to be populated as shown below and will respond with the list of ServerCapabilities that it supports:\n\n```lua\nrequire'lspconfig'.sourcery.setup {\n init_options = {\n --- The Sourcery token for authenticating the user.\n --- This is retrieved from the Sourcery website and must be\n --- provided by each user. The extension must provide a\n --- configuration option for the user to provide this value.\n token = <YOUR_TOKEN>,\n\n --- The extension's name and version as defined by the extension.\n extension_version = 'vim.lsp',\n\n --- The editor's name and version as defined by the editor.\n editor_version = 'vim',\n },\n}\n```\n\nAlternatively, you can login to sourcery by running `sourcery login` with sourcery-cli.\n",
"name": "sourcery"
},
{
"cmd": ["spectral-language-server", "--stdio"],
"desc": "https://github.com/luizcorreia/spectral-language-server\n`A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v2 & v3.`\n\n`spectral-language-server` can be installed via `npm`:\n\n``` sh\nnpm i -g spectral-language-server\n```\n\nSee\n[vscode-spectral](https://github.com/stoplightio/vscode-spectral#extension-settings)\nfor configuration options.\n",
"name": "spectral"
},
{
"cmd": ["spyglassmc-language-server", "--stdio"],
"desc": "https://github.com/SpyglassMC/Spyglass/tree/main/packages/language-server\n\nLanguage server for Minecraft datapacks.\n\n`spyglassmc-language-server` can be installed via `npm`:\n\n```sh\nnpm i -g @spyglassmc/language-server\n```\n\nYou may also need to configure the filetype:\n\n`autocmd BufNewFile,BufRead *.mcfunction set filetype=mcfunction`\n\nThis is automatically done by [CrystalAlpha358/vim-mcfunction](https://github.com/CrystalAlpha358/vim-mcfunction), which also provide syntax highlight.\n",
"name": "spyglassmc_language_server"
},
{
"cmd": ["sql-language-server", "up", "--method", "stdio"],
"desc": "https://github.com/joe-re/sql-language-server\n\nThis LSP can be installed via `npm`. Find further instructions on manual installation of the sql-language-server at [joe-re/sql-language-server](https://github.com/joe-re/sql-language-server).\n<br>\n ",
"name": "sqlls"
},
{
"cmd": ["sqls"],
"desc": "https://github.com/sqls-server/sqls\n\n```lua\nrequire'lspconfig'.sqls.setup{\n cmd = {\"path/to/command\", \"-config\", \"path/to/config.yml\"};\n ...\n}\n```\nSqls can be installed via `go get github.com/sqls-server/sqls`. Instructions for compiling Sqls from the source can be found at [sqls-server/sqls](https://github.com/sqls-server/sqls).\n\n ",
"name": "sqls"
},
{
"cmd": ["standardrb", "--lsp"],
"desc": "https://github.com/testdouble/standard\n\nRuby Style Guide, with linter & automatic code fixer.\n ",
"name": "standardrb"
},
{
"cmd": ["starlark", "--lsp"],
"desc": "https://github.com/facebookexperimental/starlark-rust/\nThe LSP part of `starlark-rust` is not currently documented,\n but the implementation works well for linting.\nThis gives valuable warnings for potential issues in the code,\nbut does not support refactorings.\n\nIt can be installed with cargo: https://crates.io/crates/starlark\n",
"name": "starlark_rust"
},
{
"cmd": ["starpls"],
"desc": "https://github.com/withered-magic/starpls\n\n`starpls` is an LSP implementation for Starlark. Installation instructions can be found in the project's README.\n",
"name": "starpls"
},
{
"cmd": ["statix", "check", "--stdin"],
"desc": "https://github.com/nerdypepper/statix\n\nlints and suggestions for the nix programming language\n ",
"name": "statix"
},
{
"cmd": ["steep", "langserver"],
"desc": "https://github.com/soutaro/steep\n\n`steep` is a static type checker for Ruby.\n\nYou need `Steepfile` to make it work. Generate it with `steep init`.\n",
"name": "steep"
},
{
"cmd": ["stimulus-language-server", "--stdio"],
"desc": "https://www.npmjs.com/package/stimulus-language-server\n\n`stimulus-lsp` can be installed via `npm`:\n\n```sh\nnpm install -g stimulus-language-server\n```\n\nor via `yarn`:\n\n```sh\nyarn global add stimulus-language-server\n```\n",
"name": "stimulus_ls"
},
{
"cmd": ["stylelint-lsp", "--stdio"],
"desc": "https://github.com/bmatcuk/stylelint-lsp\n\n`stylelint-lsp` can be installed via `npm`:\n\n```sh\nnpm i -g stylelint-lsp\n```\n\nCan be configured by passing a `settings.stylelintplus` object to `stylelint_lsp.setup`:\n\n```lua\nrequire'lspconfig'.stylelint_lsp.setup{\n settings = {\n stylelintplus = {\n -- see available options in stylelint-lsp documentation\n }\n }\n}\n```\n",
"name": "stylelint_lsp"
},
{
"cmd": ["stylua-3p-language-server"],
"desc": "https://github.com/antonk52/lua-3p-language-servers\n\n3rd party Language Server for Stylua lua formatter\n",
"name": "stylua3p_ls"
},
{
"cmd": ["superhtml", "lsp"],
"desc": "https://github.com/kristoff-it/superhtml\n\nHTML Language Server & Templating Language Library\n\nThis LSP is designed to tightly adhere to the HTML spec as well as enforcing\nsome additional rules that ensure HTML clarity.\n\nIf you want to disable HTML support for another HTML LSP, add the following\nto your configuration:\n\n```lua\nrequire'lspconfig'.superhtml.setup {\n filetypes = { 'superhtml' }\n}\n```\n ",
"name": "superhtml"
},
{
"cmd": ["svelteserver", "--stdio"],
"desc": "https://github.com/sveltejs/language-tools/tree/master/packages/language-server\n\nNote: assuming that [ts_ls](#ts_ls) is setup, full JavaScript/TypeScript\nsupport (find references, rename, etc of symbols in Svelte files when\nworking in JS/TS files) requires per-project installation and\nconfiguration of\n[typescript-svelte-plugin](https://github.com/sveltejs/language-tools/tree/master/packages/typescript-plugin#usage).\n\n`svelte-language-server` can be installed via `npm`:\n\n``` sh\nnpm install -g svelte-language-server\n```\n",
"name": "svelte"
},
{
"cmd": ["svlangserver"],
"desc": "https://github.com/imc-trading/svlangserver\n\nLanguage server for SystemVerilog.\n\n`svlangserver` can be installed via `npm`:\n\n```sh\n$ npm install -g @imc-trading/svlangserver\n```\n",
"name": "svlangserver"
},
{
"cmd": ["svls"],
"desc": "https://github.com/dalance/svls\n\nLanguage server for verilog and SystemVerilog\n\n`svls` can be installed via `cargo`:\n ```sh\n cargo install svls\n ```\n ",
"name": "svls"
},
{
"cmd": ["Swift-MesonLSP", "--lsp"],
"desc": "https://github.com/JCWasmx86/Swift-MesonLSP\n\nMeson language server written in Swift\n",
"name": "swift_mesonls"
},
{
"cmd": ["stree", "lsp"],
"desc": "https://ruby-syntax-tree.github.io/syntax_tree/\n\nA fast Ruby parser and formatter.\n\nSyntax Tree is a suite of tools built on top of the internal CRuby parser. It\nprovides the ability to generate a syntax tree from source, as well as the\ntools necessary to inspect and manipulate that syntax tree. It can be used to\nbuild formatters, linters, language servers, and more.\n\n```sh\ngem install syntax_tree\n```\n ",
"name": "syntax_tree"
},
{
"cmd": ["systemd-language-server"],
"desc": "https://github.com/psacawa/systemd-language-server\n\n`systemd-language-server` can be installed via `pip`:\n```sh\npip install systemd-language-server\n```\n\nLanguage Server for Systemd unit files\n",
"name": "systemd_ls"
},
{
"cmd": ["tabby-agent", "--lsp", "--stdio"],
"desc": "https://tabby.tabbyml.com/blog/running-tabby-as-a-language-server\n\nLanguage server for Tabby, an opensource, self-hosted AI coding assistant.\n\n`tabby-agent` can be installed via `npm`:\n\n```sh\nnpm install --global tabby-agent\n```\n",
"name": "tabby_ml"
},
{
"cmd": ["tailwindcss-language-server", "--stdio"],
"desc": "https://github.com/tailwindlabs/tailwindcss-intellisense\n\nTailwind CSS Language Server can be installed via npm:\n```sh\nnpm install -g @tailwindcss/language-server\n```\n",
"name": "tailwindcss"
},
{
"cmd": ["taplo", "lsp", "stdio"],
"desc": "https://taplo.tamasfe.dev/cli/usage/language-server.html\n\nLanguage server for Taplo, a TOML toolkit.\n\n`taplo-cli` can be installed via `cargo`:\n```sh\ncargo install --features lsp --locked taplo-cli\n```\n ",
"name": "taplo"
},
{
"cmd": ["tblgen-lsp-server"],
"desc": "https://mlir.llvm.org/docs/Tools/MLIRLSP/#tablegen-lsp-language-server--tblgen-lsp-server\n\nThe Language Server for the LLVM TableGen language\n\n`tblgen-lsp-server` can be installed at the llvm-project repository\n(https://github.com/llvm/llvm-project)\n",
"name": "tblgen_lsp_server"
},
{
"cmd": ["teal-language-server"],
"desc": "https://github.com/teal-language/teal-language-server\n\nInstall with:\n```\nluarocks install teal-language-server\n```\n\nOptional Command Args:\n* \"--log-mode=by_date\" - Enable logging in $HOME/.cache/teal-language-server. Log name will be date + pid of process\n* \"--log-mode=by_proj_path\" - Enable logging in $HOME/.cache/teal-language-server. Log name will be project path + pid of process\n* \"--verbose=true\" - Increases log level. Does nothing unless log-mode is set\n",
"name": "teal_ls"
},
{
"cmd": ["templ", "lsp"],
"desc": "https://templ.guide\n\nThe official language server for the templ HTML templating language.\n",
"name": "templ"
},
{
"cmd": ["terraform-lsp"],
"desc": "https://github.com/juliosueiras/terraform-lsp\n\nTerraform language server Download a released binary from\nhttps://github.com/juliosueiras/terraform-lsp/releases.\n\nFrom\nhttps://github.com/hashicorp/terraform-ls#terraform-ls-vs-terraform-lsp:\n\nBoth HashiCorp and the maintainer of terraform-lsp expressed interest in\ncollaborating on a language server and are working towards a *long-term*\ngoal of a single stable and feature-complete implementation.\n\nFor the time being both projects continue to exist, giving users the\nchoice:\n\n- `terraform-ls` providing\n - overall stability (by relying only on public APIs)\n - compatibility with any provider and any Terraform \\>=0.12.0\n currently less features\n - due to project being younger and relying on public APIs which\n may not offer the same functionality yet\n- `terraform-lsp` providing\n - currently more features\n - compatibility with a single particular Terraform (0.12.20 at\n time of writing)\n - configs designed for other 0.12 versions may work, but\n interpretation may be inaccurate\n - less stability (due to reliance on Terraform's own internal\n packages)\n",
"name": "terraform_lsp"
},
{
"cmd": ["terraform-ls", "serve"],
"desc": "https://github.com/hashicorp/terraform-ls\n\nTerraform language server Download a released binary from\nhttps://github.com/hashicorp/terraform-ls/releases.\n\nFrom\nhttps://github.com/hashicorp/terraform-ls#terraform-ls-vs-terraform-lsp:\n\nBoth HashiCorp and the maintainer of terraform-lsp expressed interest in\ncollaborating on a language server and are working towards a *long-term*\ngoal of a single stable and feature-complete implementation.\n\nFor the time being both projects continue to exist, giving users the\nchoice:\n\n- `terraform-ls` providing\n - overall stability (by relying only on public APIs)\n - compatibility with any provider and any Terraform \\>=0.12.0\n currently less features\n - due to project being younger and relying on public APIs which\n may not offer the same functionality yet\n- `terraform-lsp` providing\n - currently more features\n - compatibility with a single particular Terraform (0.12.20 at\n time of writing)\n - configs designed for other 0.12 versions may work, but\n interpretation may be inaccurate\n - less stability (due to reliance on Terraform's own internal\n packages)\n\nNote, that the `settings` configuration option uses the\n`workspace/didChangeConfiguration` event, [which is not supported by\nterraform-ls](https://github.com/hashicorp/terraform-ls/blob/main/docs/features.md).\nInstead you should use `init_options` which passes the settings as part\nof the LSP initialize call [as is required by\nterraform-ls](https://github.com/hashicorp/terraform-ls/blob/main/docs/SETTINGS.md#how-to-pass-settings).\n",
"name": "terraformls"
},
{
"cmd": ["texlab"],
"desc": "https://github.com/latex-lsp/texlab\n\nA completion engine built from scratch for (La)TeX.\n\nSee https://github.com/latex-lsp/texlab/wiki/Configuration for configuration options.\n",
"name": "texlab"
},
{
"cmd": ["textlsp"],
"desc": "https://github.com/hangyav/textLSP\n\n`textLSP` is an LSP server for text spell and grammar checking with various AI tools.\nIt supports multiple text file formats, such as LaTeX, Org or txt.\n\nFor the available text analyzer tools and their configuration, see the [GitHub](https://github.com/hangyav/textLSP) page.\nBy default, all analyzers are disabled in textLSP, since most of them need special settings.\nFor quick testing, LanguageTool is enabled in the default `nvim-lspconfig` configuration.\n\nTo install run: `pip install textLSP`\n",
"name": "textlsp"
},
{
"cmd": ["tflint", "--langserver"],
"desc": "https://github.com/terraform-linters/tflint\n\nA pluggable Terraform linter that can act as lsp server. Installation\ninstructions can be found in\nhttps://github.com/terraform-linters/tflint#installation.\n",
"name": "tflint"
},
{
"cmd": ["theme-check-language-server", "--stdio"],
"desc": "https://github.com/Shopify/shopify-cli\n\n`theme-check-language-server` is bundled with `shopify-cli` or it can\nalso be installed via\n\nhttps://github.com/Shopify/theme-check#installation\n\n**NOTE:** If installed via Homebrew, `cmd` must be set to\n'theme-check-liquid-server'\n\n``` lua\nrequire lspconfig.theme_check.setup {\n cmd = { 'theme-check-liquid-server' }\n}\n```\n",
"name": "theme_check"
},
{
"cmd": ["thriftls"],
"desc": "https://github.com/joyme123/thrift-ls\n\nyou can install thriftls by mason or download binary here: https://github.com/joyme123/thrift-ls/releases\n",
"name": "thriftls"
},
{
"cmd": ["tilt", "lsp", "start"],
"desc": "https://github.com/tilt-dev/tilt\n\nTilt language server.\n\nYou might need to add filetype detection manually:\n\n```vim\nautocmd BufRead Tiltfile setf=tiltfile\n```\n",
"name": "tilt_ls"
},
{
"cmd": ["tinymist"],
"desc": "https://github.com/Myriad-Dreamin/tinymist\nAn integrated language service for Typst [ta\u026apst]. You can also call it \"\u5fae\u972d\" [w\u0113i \u01cei] in Chinese.\n ",
"name": "tinymist"
},
{
"cmd": ["typescript-language-server", "--stdio"],
"desc": "https://github.com/typescript-language-server/typescript-language-server\n\n`ts_ls`, aka `typescript-language-server`, is a Language Server Protocol\nimplementation for TypeScript wrapping `tsserver`. Note that `ts_ls` is\nnot `tsserver`.\n\n`typescript-language-server` depends on `typescript`. Both packages can\nbe installed via `npm`:\n\n``` sh\nnpm install -g typescript typescript-language-server\n```\n\nTo configure typescript language server, add a\n[`tsconfig.json`](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)\nor\n[`jsconfig.json`](https://code.visualstudio.com/docs/languages/jsconfig)\nto the root of your project.\n\nHere's an example that disables type checking in JavaScript files.\n\n``` json\n{\n \"compilerOptions\": {\n \"module\": \"commonjs\",\n \"target\": \"es6\",\n \"checkJs\": false\n },\n \"exclude\": [\n \"node_modules\"\n ]\n}\n```\n\n**Vue support**\n\nAs of 2.0.0, Volar no longer supports TypeScript itself. Instead, a\nplugin adds Vue support to this language server.\n\n*IMPORTANT*: It is crucial to ensure that `@vue/typescript-plugin` and\n`volar`are of identical versions.\n\n``` lua\nrequire'lspconfig'.ts_ls.setup{\n init_options = {\n plugins = {\n {\n name = \"@vue/typescript-plugin\",\n location = \"/usr/local/lib/node_modules/@vue/typescript-plugin\",\n languages = {\"javascript\", \"typescript\", \"vue\"},\n },\n },\n },\n filetypes = {\n \"javascript\",\n \"typescript\",\n \"vue\",\n },\n}\n\n-- You must make sure volar is setup\n-- e.g. require'lspconfig'.volar.setup{}\n-- See volar's section for more information\n```\n\n`location` MUST be defined. If the plugin is installed in\n`node_modules`, `location` can have any value.\n\n`languages` must include `vue` even if it is listed in `filetypes`.\n\n`filetypes` is extended here to include Vue SFC.\n",
"name": "ts_ls"
},
{
"cmd": ["ts_query_ls"],
"desc": "https://github.com/ribru17/ts_query_ls\nCan be configured by passing a \"settings\" object to `ts_query_ls.setup{}`:\n```lua\nrequire('lspconfig').ts_query_ls.setup{\n settings = {\n parser_install_directories = {\n -- If using nvim-treesitter with lazy.nvim\n vim.fs.joinpath(\n vim.fn.stdpath('data'),\n '/lazy/nvim-treesitter/parser/'\n ),\n },\n -- This setting is provided by default\n parser_aliases = {\n ecma = 'javascript',\n jsx = 'javascript',\n php_only = 'php',\n },\n -- E.g. zed support\n language_retrieval_patterns = {\n 'languages/src/([^/]+)/[^/]+\\\\.scm$',\n },\n },\n}\n```\n",
"name": "ts_query_ls"
},
{
"cmd": ["tsp-server", "--stdio"],
"desc": "https://github.com/microsoft/typespec\n\nThe language server for TypeSpec, a language for defining cloud service APIs and shapes.\n\n`tsp-server` can be installed together with the typespec compiler via `npm`:\n```sh\nnpm install -g @typespec/compiler\n```\n",
"name": "tsp_server"
},
{
"cmd": ["ttags", "lsp"],
"desc": "https://github.com/npezza93/ttags\n ",
"name": "ttags"
},
{
"cmd": ["turbo-language-server", "--stdio"],
"desc": "https://www.npmjs.com/package/turbo-language-server\n\n`turbo-language-server` can be installed via `npm`:\n\n```sh\nnpm install -g turbo-language-server\n```\n\nor via `yarn`:\n\n```sh\nyarn global add turbo-language-server\n```\n",
"name": "turbo_ls"
},
{
"cmd": ["node", null, "--stdio"],
"desc": "https://github.com/stardog-union/stardog-language-servers/tree/master/packages/turtle-language-server\n`turtle-language-server`, An editor-agnostic server providing language intelligence (diagnostics, hover tooltips, etc.) for the W3C standard Turtle RDF syntax via the Language Server Protocol.\ninstallable via npm install -g turtle-language-server or yarn global add turtle-language-server.\nrequires node.\n",
"name": "turtle_ls"
},
{
"cmd": ["python", "-m", "ffi_navigator.langserver"],
"desc": "https://github.com/tqchen/ffi-navigator\n\nThe Language Server for FFI calls in TVM to be able jump between python\nand C++\n\nFFI navigator can be installed with `pip install ffi-navigator`, buf for\nmore details, please see\nhttps://github.com/tqchen/ffi-navigator?tab=readme-ov-file#installation\n",
"name": "tvm_ffi_navigator"
},
{
"cmd": ["twiggy-language-server", "--stdio"],
"desc": "https://github.com/moetelo/twiggy\n\n`twiggy-language-server` can be installed via `npm`:\n```sh\nnpm install -g twiggy-language-server\n```\n",
"name": "twiggy_language_server"
},
{
"cmd": ["typeprof", "--lsp", "--stdio"],
"desc": "https://github.com/ruby/typeprof\n\n`typeprof` is the built-in analysis and LSP tool for Ruby 3.1+.\n ",
"name": "typeprof"
},
{
"cmd": ["typos-lsp"],
"desc": "https://github.com/crate-ci/typos\nhttps://github.com/tekumara/typos-lsp\n\nA Language Server Protocol implementation for Typos, a low false-positive\nsource code spell checker, written in Rust. Download it from the releases page\non GitHub: https://github.com/tekumara/typos-lsp/releases\n ",
"name": "typos_lsp"
},
{
"cmd": ["typst-lsp"],
"desc": "https://github.com/nvarner/typst-lsp\n\nLanguage server for Typst.\n ",
"name": "typst_lsp"
},
{
"cmd": ["uiua", "lsp"],
"desc": "https://github.com/uiua-lang/uiua/\n\nThe builtin language server of the Uiua interpreter.\n\nThe Uiua interpreter can be installed with `cargo install uiua`\n",
"name": "uiua"
},
{
"cmd": ["ungrammar-languageserver", "--stdio"],
"desc": "https://github.com/binhtran432k/ungrammar-language-features\nLanguage Server for Ungrammar.\n\nUngrammar Language Server can be installed via npm:\n```sh\nnpm i ungrammar-languageserver -g\n```\n ",
"name": "ungrammar_languageserver"
},
{
"cmd": ["nc", "localhost", "5757"],
"desc": "https://github.com/unisonweb/unison/blob/trunk/docs/language-server.markdown\n\n\n ",
"name": "unison"
},
{
"cmd": ["unocss-language-server", "--stdio"],
"desc": "https://github.com/xna00/unocss-language-server\n\nUnoCSS Language Server can be installed via npm:\n```sh\nnpm i unocss-language-server -g\n```\n",
"name": "unocss"
},
{
"cmd": ["uvls"],
"desc": "https://codeberg.org/caradhras/uvls\nLanguage server for UVL, written using tree sitter and rust.\nYou can install the server easily using cargo:\n```sh\ngit clone https://codeberg.org/caradhras/uvls\ncd uvls\ncargo install --path .\n```\nNote: To activate properly nvim needs to know the uvl filetype.\nYou can add it via:\n```lua\nvim.cmd([[au BufRead,BufNewFile *.uvl setfiletype uvl]])\n```\n",
"name": "uvls"
},
{
"cmd": ["v-analyzer"],
"desc": "https://github.com/vlang/v-analyzer\n\nV language server.\n\n`v-analyzer` can be installed by following the instructions\n[here](https://github.com/vlang/v-analyzer#installation).\n",
"name": "v_analyzer"
},
{
"cmd": ["vacuum", "language-server"],
"desc": "Vacuum is the worlds fastest OpenAPI 3, OpenAPI 2 / Swagger linter and quality analysis tool.\n\nYou can install vacuum using mason or follow the instructions here: https://github.com/daveshanley/vacuum\n\nThe file types are not detected automatically, you can register them manually (see below) or override the filetypes:\n\n```lua\nvim.filetype.add {\n pattern = {\n ['openapi.*%.ya?ml'] = 'yaml.openapi',\n ['openapi.*%.json'] = 'json.openapi',\n },\n}\n```\n",
"name": "vacuum"
},
{
"cmd": ["vala-language-server"],
"desc": "https://github.com/Prince781/vala-language-server",
"name": "vala_ls"
},
{
"cmd": ["vale-ls"],
"desc": "https://github.com/errata-ai/vale-ls\n\nAn implementation of the Language Server Protocol (LSP) for the Vale command-line tool.\n",
"name": "vale_ls"
},
{
"cmd": ["java"],
"desc": "https://github.com/nickbattle/vdmj\n\nThe VDMJ language server can be installed by cloning the VDMJ repository and\nrunning `mvn clean install`.\n\nVarious options are provided to configure the language server (see below). In\nparticular:\n- `annotation_paths` is a list of folders and/or jar file paths for annotations\nthat should be used with the language server;\n- any value of `debugger_port` less than zero will disable the debugger; note\nthat if a non-zero value is used, only one instance of the server can be active\nat a time.\n\nMore settings for VDMJ can be changed in a file called `vdmj.properties` under\n`root_dir/.vscode`. For a description of the available settings, see\n[Section 7 of the VDMJ User Guide](https://raw.githubusercontent.com/nickbattle/vdmj/master/vdmj/documentation/UserGuide.pdf).\n\nNote: proof obligations and combinatorial testing are not currently supported\nby neovim.\n",
"name": "vdmj"
},
{
"cmd": ["verible-verilog-ls"],
"desc": "https://github.com/chipsalliance/verible\n\nA linter and formatter for verilog and SystemVerilog files.\n\nRelease binaries can be downloaded from [here](https://github.com/chipsalliance/verible/releases)\nand placed in a directory on PATH.\n\nSee https://github.com/chipsalliance/verible/tree/master/verilog/tools/ls/README.md for options.\n ",
"name": "verible"
},
{
"cmd": ["veridian"],
"desc": "https://github.com/vivekmalneedi/veridian\n\nA SystemVerilog LanguageServer.\n\nDownload the latest release for your OS from the releases page\n\nInstall with slang feature, if C++17 compiler is available:\n```\ncargo install --git https://github.com/vivekmalneedi/veridian.git --all-features\n```\n\nInstall if C++17 compiler is not available:\n```\ncargo install --git https://github.com/vivekmalneedi/veridian.git\n```\n ",
"name": "veridian"
},
{
"cmd": ["veryl-ls"],
"desc": "https://github.com/veryl-lang/veryl\n\nLanguage server for Veryl\n\n`veryl-ls` can be installed via `cargo`:\n ```sh\n cargo install veryl-ls\n ```\n ",
"name": "veryl_ls"
},
{
"cmd": ["vhdl_ls"],
"desc": "Install vhdl_ls from https://github.com/VHDL-LS/rust_hdl and add it to\npath\n\nConfiguration\n\nThe language server needs to know your library mapping to perform full\nanalysis of the code. For this it uses a configuration file in the TOML\nformat named vhdl_ls.toml.\n\nvhdl_ls will load configuration files in the following order of priority\n(first to last):\n\n A file named .vhdl_ls.toml in the user home folder.\n A file name from the VHDL_LS_CONFIG environment variable.\n A file named vhdl_ls.toml in the workspace root.\n\nSettings in a later files overwrites those from previously loaded files.\n\nExample vhdl_ls.toml\n\n # File names are either absolute or relative to the parent folder of the vhdl_ls.toml file\n [libraries]\n lib2.files = [\n 'pkg2.vhd',\n ]\n lib1.files = [\n 'pkg1.vhd',\n 'tb_ent.vhd'\n ]\n",
"name": "vhdl_ls"
},
{
"cmd": ["vim-language-server", "--stdio"],
"desc": "https://github.com/iamcco/vim-language-server\n\nYou can install vim-language-server via npm:\n```sh\nnpm install -g vim-language-server\n```\n",
"name": "vimls"
},
{
"desc": "https://github.com/forcedotcom/salesforcedx-vscode\n\nLanguage server for Visualforce.\n\nFor manual installation, download the .vsix archive file from the\n[forcedotcom/salesforcedx-vscode](https://github.com/forcedotcom/salesforcedx-vscode)\nGitHub releases. Then, configure `cmd` to run the Node script at the unpacked location:\n\n```lua\nrequire'lspconfig'.visualforce_ls.setup {\n cmd = {\n 'node',\n '/path/to/unpacked/archive/extension/node_modules/@salesforce/salesforcedx-visualforce-language-server/out/src/visualforceServer.js',\n '--stdio'\n }\n}\n```\n",
"name": "visualforce_ls"
},
{
"cmd": ["v", "ls"],
"desc": "https://github.com/vlang/vls\n\nV language server.\n\n`v-language-server` can be installed by following the instructions\n[here](https://github.com/vlang/vls#installation).\n",
"name": "vls"
},
{
"cmd": ["vue-language-server", "--stdio"],
"desc": "https://github.com/vuejs/language-tools/tree/master/packages/language-server\n\nVolar language server for Vue\n\nVolar can be installed via npm:\n\n``` sh\nnpm install -g @vue/language-server\n```\n\nVolar by default supports Vue 3 projects. For Vue 2 projects,\n[additional\nconfiguration](https://github.com/vuejs/language-tools/blob/master/extensions/vscode/README.md?plain=1#L19)\nare required.\n\n**Hybrid Mode (by default)**\n\nIn this mode, the Vue Language Server exclusively manages the CSS/HTML\nsections. You need the `ts_ls` server with the `@vue/typescript-plugin`\nplugin to support TypeScript in `.vue` files. See `ts_ls` section for\nmore information\n\n**No Hybrid Mode**\n\nVolar will run embedded `ts_ls` therefore there is no need to run it\nseparately.\n\n``` lua\nlocal lspconfig = require('lspconfig')\n\nlspconfig.volar.setup {\n -- add filetypes for typescript, javascript and vue\n filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue' },\n init_options = {\n vue = {\n -- disable hybrid mode\n hybridMode = false,\n },\n },\n}\n-- you must remove ts_ls setup\n-- lspconfig.ts_ls.setup {}\n```\n\n**Overriding the default TypeScript Server used by Volar**\n\nThe default config looks for TypeScript in the local `node_modules`.\nThis can lead to issues e.g.\u00a0when working on a\n[monorepo](https://monorepo.tools/). The alternatives are:\n\n- use a global TypeScript Server installation\n\n``` lua\nrequire'lspconfig'.volar.setup {\n init_options = {\n typescript = {\n -- replace with your global TypeScript library path\n tsdk = '/path/to/node_modules/typescript/lib'\n }\n }\n}\n```\n\n- use a local server and fall back to a global TypeScript Server\n installation\n\n``` lua\nrequire'lspconfig'.volar.setup {\n init_options = {\n typescript = {\n -- replace with your global TypeScript library path\n tsdk = '/path/to/node_modules/typescript/lib'\n }\n },\n on_new_config = function(new_config, new_root_dir)\n local lib_path = vim.fs.find('node_modules/typescript/lib', { path = new_root_dir, upward = true })[1]\n if lib_path then\n new_config.init_options.typescript.tsdk = lib_path\n end\n end\n}\n```\n",
"name": "volar"
},
{
"cmd": ["vscoqtop"],
"desc": "https://github.com/coq-community/vscoq\n",
"name": "vscoqtop"
},
{
"cmd": ["vtsls", "--stdio"],
"desc": "https://github.com/yioneko/vtsls\n\n`vtsls` can be installed with npm:\n```sh\nnpm install -g @vtsls/language-server\n```\n\nTo configure a TypeScript project, add a\n[`tsconfig.json`](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)\nor [`jsconfig.json`](https://code.visualstudio.com/docs/languages/jsconfig) to\nthe root of your project.\n",
"name": "vtsls"
},
{
"cmd": ["vls"],
"desc": "https://github.com/vuejs/vetur/tree/master/server\n\nVue language server(vls)\n`vue-language-server` can be installed via `npm`:\n```sh\nnpm install -g vls\n```\n",
"name": "vuels"
},
{
"cmd": ["wat_server"],
"desc": "https://github.com/g-plane/wasm-language-tools\n\nWebAssembly Language Tools aims to provide and improve the editing experience of WebAssembly Text Format.\nIt also provides an out-of-the-box formatter (a.k.a. pretty printer) for WebAssembly Text Format.\n",
"name": "wasm_language_tools"
},
{
"cmd": ["wgsl_analyzer"],
"desc": "https://github.com/wgsl-analyzer/wgsl-analyzer\n\n`wgsl_analyzer` can be installed via `cargo`:\n```sh\ncargo install --git https://github.com/wgsl-analyzer/wgsl-analyzer wgsl_analyzer\n```\n",
"name": "wgsl_analyzer"
},
{
"cmd": ["yaml-language-server", "--stdio"],
"desc": "https://github.com/redhat-developer/yaml-language-server\n\n`yaml-language-server` can be installed via `yarn`:\n\n``` sh\nyarn global add yaml-language-server\n```\n\nTo use a schema for validation, there are two options:\n\n1. Add a modeline to the file. A modeline is a comment of the form:\n\n```{=html}\n<!-- -->\n```\n # yaml-language-server: $schema=<urlToTheSchema|relativeFilePath|absoluteFilePath}>\n\nwhere the relative filepath is the path relative to the open yaml file,\nand the absolute filepath is the filepath relative to the filesystem\nroot ('/' on unix systems)\n\n2. Associated a schema url, relative , or absolute (to root of project,\n not to filesystem root) path to the a glob pattern relative to the\n detected project root. Check `:LspInfo` to determine the resolved\n project root.\n\n``` lua\nrequire('lspconfig').yamlls.setup {\n ... -- other configuration for setup {}\n settings = {\n yaml = {\n ... -- other settings. note this overrides the lspconfig defaults.\n schemas = {\n [\"https://json.schemastore.org/github-workflow.json\"] = \"/.github/workflows/*\",\n [\"../path/relative/to/file.yml\"] = \"/.github/workflows/*\",\n [\"/path/from/root/of/project\"] = \"/.github/workflows/*\",\n },\n },\n }\n}\n```\n\nCurrently, kubernetes is special-cased in yammls, see the following\nupstream issues: \\*\n[#211](https://github.com/redhat-developer/yaml-language-server/issues/211).\n\\*\n[#307](https://github.com/redhat-developer/yaml-language-server/issues/307).\n\nTo override a schema to use a specific k8s schema version (for example,\nto use 1.18):\n\n``` lua\nrequire('lspconfig').yamlls.setup {\n ... -- other configuration for setup {}\n settings = {\n yaml = {\n ... -- other settings. note this overrides the lspconfig defaults.\n schemas = {\n [\"https://raw.githubusercontent.com/yannh/kubernetes-json-schema/refs/heads/master/v1.32.1-standalone-strict/all.json\"] = \"/*.k8s.yaml\",\n ... -- other schemas\n },\n },\n }\n}\n```\n",
"name": "yamlls"
},
{
"cmd": ["yang-language-server"],
"desc": "https://github.com/TypeFox/yang-lsp\n\nA Language Server for the YANG data modeling language.\n",
"name": "yang_lsp"
},
{
"cmd": ["yls", "-vv"],
"desc": "https://pypi.org/project/yls-yara/\n\nAn YLS plugin adding YARA linting capabilities.\n\nThis plugin runs yara.compile on every save, parses the errors, and returns list of diagnostic messages.\n\nLanguage Server: https://github.com/avast/yls\n",
"name": "yls"
},
{
"cmd": ["ziggy", "lsp"],
"desc": "https://ziggy-lang.io/documentation/ziggy-lsp/\n\nLanguage server for the Ziggy data serialization format\n\n",
"name": "ziggy"
},
{
"cmd": ["ziggy", "lsp", "--schema"],
"desc": "https://ziggy-lang.io/documentation/ziggy-lsp/\n\nLanguage server for schema files of the Ziggy data serialization format\n\n",
"name": "ziggy_schema"
},
{
"cmd": ["zk", "lsp"],
"desc": "https://github.com/mickael-menu/zk\n\nA plain text note-taking assistant\n",
"name": "zk"
},
{
"cmd": ["zls"],
"desc": "https://github.com/zigtools/zls\n\nZig LSP implementation + Zig Language Server\n ",
"name": "zls"
}
]