{"id":23084019,"url":"https://github.com/octarect/nvim-lspservers","last_synced_at":"2026-05-09T03:35:48.576Z","repository":{"id":96507383,"uuid":"371850739","full_name":"octarect/nvim-lspservers","owner":"octarect","description":"🛠️ Easy way to automate installation and setup of language server for neovim/nvim-lspconfig","archived":false,"fork":false,"pushed_at":"2024-01-04T13:38:57.000Z","size":114,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-02T22:37:40.630Z","etag":null,"topics":["language-server","neovim","neovim-plugin","nvim","nvim-lua","vim"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/octarect.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-05-29T00:56:07.000Z","updated_at":"2024-01-04T13:57:23.000Z","dependencies_parsed_at":"2025-06-15T21:16:36.494Z","dependency_job_id":"4a52c458-9f22-4451-b351-277ba999d483","html_url":"https://github.com/octarect/nvim-lspservers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/octarect/nvim-lspservers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octarect%2Fnvim-lspservers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octarect%2Fnvim-lspservers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octarect%2Fnvim-lspservers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octarect%2Fnvim-lspservers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octarect","download_url":"https://codeload.github.com/octarect/nvim-lspservers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octarect%2Fnvim-lspservers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32806150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["language-server","neovim","neovim-plugin","nvim","nvim-lua","vim"],"created_at":"2024-12-16T15:23:29.545Z","updated_at":"2026-05-09T03:35:48.571Z","avatar_url":"https://github.com/octarect.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nvim-lspservers\n[![Test](https://github.com/octarect/nvim-lspservers/actions/workflows/test.yml/badge.svg)](https://github.com/octarect/nvim-lspservers/actions/workflows/test.yml)\n\nEasy to install a language server for [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig).\n\n**nvim-lspservers is in early stage and a breaking change may happen suddenly. Stay tuned 😎**\n\n## Features\n\n- 🏭 Automate installation and setup of language servers\n- 🚀 Just call `require'lspservers'.setup()` to configure\n- ⚙️ Easy to customize language server\n\n## Getting Started\n\n### Dependencies\n\nObviously you must have [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig).\n\nSome servers may require an additional tool (e.g. `npm`) to install them.\nYou can check if they are available by `:checkhealth lspservers` after installation of plugin.\n\n### Installation\n\nUsing [dein](https://github.com/Shougo/dein.vim)\n\n```nvim\ncall dein#add('neovim/nvim-lspconfig')\ncall dein#add('octarect/nvim-lspservers')\n```\n\n## Usage\n\n\u003e See also [Available Language Servers](#available-language-servers) for examples of `:LspServersInstall`.\n\nThe following code will install and setup language servers.\n\n```lua\nrequire'lspservers'.setup{\n  -- List servers you want to use. Each value of RHS should be `true` or dictionary.\n  servers = {\n    gopls = true,\n\n    -- You can write server-specific configuration as follows;\n    -- vimls = {\n    --   filetypes = { \"vim\", ... },\n    --   init_options = {\n    --     ...\n    --   },\n    -- },\n  },\n\n  -- `global` configuration will be applied to all language servers.\n  global = {\n    on_attach = on_attach,\n  },\n}\n```\n\n### Available options\n\nYou can configure the plugin by passing options to `setup()` function as dictionary.\nThe following options are available.\n\n#### Top level\n\n| Option              | Description                                                            | Type       | Default                              |\n|:--------------------|:-----------------------------------------------------------------------|:-----------|:------------------------------------:|\n| `installation_path` | Where to install servers.                                              | String     | `$HOME/.local/share/nvim/lspservers` |\n| `global`            | Configuration for all servers.                                         | Dictionary | `{}`                                 |\n| `servers`           | Configuration for each server. See also [Server level](#server-level). | Dictionary | `{}`                                 |\n\n#### Server level\n\nYou can use same server name as nvim-lspconfig. See https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md\n\nSome special fields is defined for nvim-lspservers and they will be ignored as server configuration.\n\n| Option        | Description                                           | Type    | Default |\n|:--------------|:------------------------------------------------------|:--------|:-------:|\n| `auto_config` | Determine whether to apply recommended config or not. | Boolean | `true`  |\n\n### Update language servers\n\nYou can update language servers by the following command:\n\n```\n:LspServersUpdate\n```\n\n## Available language servers\n\n**TODO**: I am planning to expand our supported servers in series. For the time being, we will focus to add same servers as [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md).\n\n| Language   | Language Server      | Auto config |\n|:-----------|:---------------------|:-----------:|\n| Ansible    | ansiblels            |             |\n| Bash       | bashls               |             |\n| C/C++      | clangd               |             |\n| CSS        | cssls                | Yes         |\n| Dockerfile | dockerls             |             |\n| Elixir     | elixirls             |             |\n| Erlang     | erlangls             |             |\n| Go         | gopls                |             |\n| HTML       | html                 | Yes         |\n| JSON       | jsonls               |             |\n| Lua        | sumneko_lua          | Yes         |\n| Python     | jedi_language_server |             |\n| Python     | pyright              |             |\n| Ruby       | solargraph           |             |\n| Rust       | rust_analyzer        |             |\n| TypeScript | tsserver             |             |\n| Terraform  | terraformls          |             |\n| Terraform  | tflint               |             |\n| Vim        | vimls                |             |\n| YAML       | yamlls               |             |\n\n## Development\n\n### Additional dependencies\n\nYou need to install [plenary.nvim](https://github.com/nvim-lua/plenary.nvim) for automated testing.\n\nSee https://github.com/nvim-lua/plenary.nvim#installation\n\n### Adding new server\n\n1. Create new lua file in `./lua/lspservers/servers/`. (e.g. `vimls.lua`)\n\n2. Edit `vimls.lua`\n\n`installer` and `cmd` will be executed in server's installation path.\nIn this example, working directry is `\u003cinstallation_path\u003e/vimls/`.\n\n```lua\nlocal server = require'lspservers/server'\n\nreturn server.new({\n  name = 'vimls',\n  cmd = { './node_modules/.bin/vim-language-server', '--stdio' },\n  installer = [[\n    set -e\n    npm install vim-language-server@latest\n  ]]\n})\n```\n\n3. Commit your changes and submit pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctarect%2Fnvim-lspservers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctarect%2Fnvim-lspservers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctarect%2Fnvim-lspservers/lists"}