├── .codespellignorewords
├── .editorconfig
├── .github
├── CODEOWNERS
├── ISSUE_TEMPLATE
│ ├── bug_report.yml
│ └── config.yml
├── PULL_REQUEST_TEMPLATE
│ └── pull_request_template.md
├── ci
│ └── lint.sh
├── dependabot.yml
└── workflows
│ ├── docgen.yml
│ ├── lint.yml
│ ├── problem_matchers
│ └── selene.json
│ ├── release.yml
│ └── test.yml
├── .gitignore
├── .luacheckrc
├── .luarc.json
├── .stylua.toml
├── CONTRIBUTING.md
├── LICENSE.md
├── Makefile
├── README.md
├── doc
├── configs.md
├── configs.txt
├── lspconfig.txt
├── server_configurations.md
└── server_configurations.txt
├── flake.lock
├── flake.nix
├── lsp
├── ada_ls.lua
├── agda_ls.lua
├── aiken.lua
├── air.lua
├── alloy_ls.lua
├── anakin_language_server.lua
├── angularls.lua
├── ansiblels.lua
├── antlersls.lua
├── arduino_language_server.lua
├── asm_lsp.lua
├── ast_grep.lua
├── astro.lua
├── atlas.lua
├── autohotkey_lsp.lua
├── autotools_ls.lua
├── awk_ls.lua
├── azure_pipelines_ls.lua
├── bacon_ls.lua
├── ballerina.lua
├── basedpyright.lua
├── bashls.lua
├── basics_ls.lua
├── bazelrc_lsp.lua
├── beancount.lua
├── bicep.lua
├── biome.lua
├── bitbake_language_server.lua
├── blueprint_ls.lua
├── bqls.lua
├── bright_script.lua
├── bsl_ls.lua
├── buck2.lua
├── buddy_ls.lua
├── buf_ls.lua
├── bufls.lua
├── bzl.lua
├── c3_lsp.lua
├── cairo_ls.lua
├── ccls.lua
├── cds_lsp.lua
├── circom-lsp.lua
├── clangd.lua
├── clarity_lsp.lua
├── clojure_lsp.lua
├── cmake.lua
├── cobol_ls.lua
├── coffeesense.lua
├── contextive.lua
├── coq_lsp.lua
├── crystalline.lua
├── csharp_ls.lua
├── cspell_ls.lua
├── css_variables.lua
├── cssls.lua
├── cssmodules_ls.lua
├── cucumber_language_server.lua
├── cue.lua
├── custom_elements_ls.lua
├── cypher_ls.lua
├── daedalus_ls.lua
├── dafny.lua
├── dagger.lua
├── dartls.lua
├── dcmls.lua
├── debputy.lua
├── denols.lua
├── dhall_lsp_server.lua
├── diagnosticls.lua
├── digestif.lua
├── djlsp.lua
├── docker_compose_language_service.lua
├── dockerls.lua
├── dolmenls.lua
├── dotls.lua
├── dprint.lua
├── ds_pinyin_lsp.lua
├── dts_lsp.lua
├── earthlyls.lua
├── ecsact.lua
├── efm.lua
├── elixirls.lua
├── elmls.lua
├── elp.lua
├── ember.lua
├── emmet_language_server.lua
├── emmet_ls.lua
├── emmylua_ls.lua
├── erg_language_server.lua
├── erlangls.lua
├── esbonio.lua
├── eslint.lua
├── facility_language_server.lua
├── fennel_language_server.lua
├── fennel_ls.lua
├── fish_lsp.lua
├── flow.lua
├── flux_lsp.lua
├── foam_ls.lua
├── fortls.lua
├── fsautocomplete.lua
├── fsharp_language_server.lua
├── fstar.lua
├── futhark_lsp.lua
├── gdscript.lua
├── gdshader_lsp.lua
├── gh_actions_ls.lua
├── ghcide.lua
├── ghdl_ls.lua
├── ginko_ls.lua
├── gitlab_ci_ls.lua
├── glasgow.lua
├── gleam.lua
├── glsl_analyzer.lua
├── glslls.lua
├── gnls.lua
├── golangci_lint_ls.lua
├── gopls.lua
├── gradle_ls.lua
├── grammarly.lua
├── graphql.lua
├── groovyls.lua
├── guile_ls.lua
├── harper_ls.lua
├── hdl_checker.lua
├── helm_ls.lua
├── hhvm.lua
├── hie.lua
├── hlasm.lua
├── hls.lua
├── hoon_ls.lua
├── html.lua
├── htmx.lua
├── hydra_lsp.lua
├── hyprls.lua
├── idris2_lsp.lua
├── intelephense.lua
├── janet_lsp.lua
├── java_language_server.lua
├── jdtls.lua
├── jedi_language_server.lua
├── jinja_lsp.lua
├── jqls.lua
├── jsonls.lua
├── jsonnet_ls.lua
├── julials.lua
├── just.lua
├── kcl.lua
├── koka.lua
├── kotlin_language_server.lua
├── kotlin_lsp.lua
├── kulala_ls.lua
├── laravel_ls.lua
├── lean3ls.lua
├── lelwel_ls.lua
├── lemminx.lua
├── lexical.lua
├── lsp_ai.lua
├── ltex.lua
├── ltex_plus.lua
├── lua_ls.lua
├── luau_lsp.lua
├── lwc_ls.lua
├── m68k.lua
├── markdown_oxide.lua
├── marko-js.lua
├── marksman.lua
├── matlab_ls.lua
├── mdx_analyzer.lua
├── mesonlsp.lua
├── metals.lua
├── millet.lua
├── mint.lua
├── mlir_lsp_server.lua
├── mlir_pdll_lsp_server.lua
├── mm0_ls.lua
├── mojo.lua
├── motoko_lsp.lua
├── move_analyzer.lua
├── msbuild_project_tools_server.lua
├── muon.lua
├── mutt_ls.lua
├── nelua_lsp.lua
├── neocmake.lua
├── nextflow_ls.lua
├── nextls.lua
├── nginx_language_server.lua
├── nickel_ls.lua
├── nil_ls.lua
├── nim_langserver.lua
├── nimls.lua
├── nixd.lua
├── nomad_lsp.lua
├── ntt.lua
├── nushell.lua
├── nxls.lua
├── ocamlls.lua
├── ocamllsp.lua
├── ols.lua
├── omnisharp.lua
├── opencl_ls.lua
├── openscad_ls.lua
├── openscad_lsp.lua
├── oxlint.lua
├── pact_ls.lua
├── pasls.lua
├── pbls.lua
├── perlls.lua
├── perlnavigator.lua
├── perlpls.lua
├── pest_ls.lua
├── phan.lua
├── phpactor.lua
├── pico8_ls.lua
├── pkgbuild_language_server.lua
├── please.lua
├── pli.lua
├── poryscript_pls.lua
├── postgres_lsp.lua
├── powershell_es.lua
├── prismals.lua
├── prolog_ls.lua
├── prosemd_lsp.lua
├── protols.lua
├── psalm.lua
├── pug.lua
├── puppet.lua
├── purescriptls.lua
├── pylsp.lua
├── pylyzer.lua
├── pyre.lua
├── pyrefly.lua
├── pyright.lua
├── qmlls.lua
├── quick_lint_js.lua
├── r_language_server.lua
├── racket_langserver.lua
├── raku_navigator.lua
├── reason_ls.lua
├── regal.lua
├── regols.lua
├── remark_ls.lua
├── rescriptls.lua
├── rls.lua
├── rnix.lua
├── robotcode.lua
├── robotframework_ls.lua
├── roc_ls.lua
├── rome.lua
├── roslyn_ls.lua
├── rpmspec.lua
├── rubocop.lua
├── ruby_lsp.lua
├── ruff.lua
├── ruff_lsp.lua
├── rune_languageserver.lua
├── rust_analyzer.lua
├── salt_ls.lua
├── scheme_langserver.lua
├── scry.lua
├── selene3p_ls.lua
├── serve_d.lua
├── shopify_theme_ls.lua
├── sixtyfps.lua
├── slangd.lua
├── slint_lsp.lua
├── smarty_ls.lua
├── smithy_ls.lua
├── snakeskin_ls.lua
├── snyk_ls.lua
├── solang.lua
├── solargraph.lua
├── solc.lua
├── solidity.lua
├── solidity_ls.lua
├── solidity_ls_nomicfoundation.lua
├── somesass_ls.lua
├── sorbet.lua
├── sourcekit.lua
├── spectral.lua
├── spyglassmc_language_server.lua
├── sqlls.lua
├── sqls.lua
├── sqruff.lua
├── standardrb.lua
├── starlark_rust.lua
├── starpls.lua
├── statix.lua
├── steep.lua
├── stimulus_ls.lua
├── stylelint_lsp.lua
├── stylua3p_ls.lua
├── superhtml.lua
├── svelte.lua
├── svlangserver.lua
├── svls.lua
├── swift_mesonls.lua
├── syntax_tree.lua
├── systemd_ls.lua
├── tabby_ml.lua
├── tailwindcss.lua
├── taplo.lua
├── tblgen_lsp_server.lua
├── teal_ls.lua
├── templ.lua
├── terraform_lsp.lua
├── terraformls.lua
├── texlab.lua
├── textlsp.lua
├── tflint.lua
├── theme_check.lua
├── thriftls.lua
├── tilt_ls.lua
├── tinymist.lua
├── tofu_ls.lua
├── tombi.lua
├── ts_ls.lua
├── ts_query_ls.lua
├── tsp_server.lua
├── ttags.lua
├── turbo_ls.lua
├── turtle_ls.lua
├── tvm_ffi_navigator.lua
├── twiggy_language_server.lua
├── ty.lua
├── typeprof.lua
├── typos_lsp.lua
├── typst_lsp.lua
├── uiua.lua
├── ungrammar_languageserver.lua
├── unison.lua
├── unocss.lua
├── uvls.lua
├── v_analyzer.lua
├── vacuum.lua
├── vala_ls.lua
├── vale_ls.lua
├── vectorcode_server.lua
├── verible.lua
├── veridian.lua
├── veryl_ls.lua
├── vespa_ls.lua
├── vhdl_ls.lua
├── vimls.lua
├── visualforce_ls.lua
├── vls.lua
├── volar.lua
├── vscoqtop.lua
├── vtsls.lua
├── vue_ls.lua
├── wasm_language_tools.lua
├── wgsl_analyzer.lua
├── yamlls.lua
├── yang_lsp.lua
├── yls.lua
├── ziggy.lua
├── ziggy_schema.lua
├── zk.lua
└── zls.lua
├── lua
├── lspconfig.lua
└── lspconfig
│ ├── async.lua
│ ├── configs.lua
│ ├── configs
│ ├── ada_ls.lua
│ ├── agda_ls.lua
│ ├── aiken.lua
│ ├── air.lua
│ ├── alloy_ls.lua
│ ├── anakin_language_server.lua
│ ├── angularls.lua
│ ├── ansiblels.lua
│ ├── antlersls.lua
│ ├── apex_ls.lua
│ ├── arduino_language_server.lua
│ ├── asm_lsp.lua
│ ├── ast_grep.lua
│ ├── astro.lua
│ ├── atlas.lua
│ ├── autohotkey_lsp.lua
│ ├── autotools_ls.lua
│ ├── awk_ls.lua
│ ├── azure_pipelines_ls.lua
│ ├── bacon_ls.lua
│ ├── ballerina.lua
│ ├── basedpyright.lua
│ ├── bashls.lua
│ ├── basics_ls.lua
│ ├── bazelrc_lsp.lua
│ ├── beancount.lua
│ ├── bicep.lua
│ ├── biome.lua
│ ├── bitbake_language_server.lua
│ ├── bitbake_ls.lua
│ ├── blueprint_ls.lua
│ ├── bqls.lua
│ ├── bqnlsp.lua
│ ├── bright_script.lua
│ ├── bsl_ls.lua
│ ├── buck2.lua
│ ├── buddy_ls.lua
│ ├── buf_ls.lua
│ ├── bufls.lua
│ ├── bzl.lua
│ ├── c3_lsp.lua
│ ├── cadence.lua
│ ├── cairo_ls.lua
│ ├── ccls.lua
│ ├── cds_lsp.lua
│ ├── circom-lsp.lua
│ ├── clangd.lua
│ ├── clarity_lsp.lua
│ ├── clojure_lsp.lua
│ ├── cmake.lua
│ ├── cobol_ls.lua
│ ├── codeqlls.lua
│ ├── coffeesense.lua
│ ├── contextive.lua
│ ├── coq_lsp.lua
│ ├── crystalline.lua
│ ├── csharp_ls.lua
│ ├── css_variables.lua
│ ├── cssls.lua
│ ├── cssmodules_ls.lua
│ ├── cucumber_language_server.lua
│ ├── cue.lua
│ ├── custom_elements_ls.lua
│ ├── cypher_ls.lua
│ ├── daedalus_ls.lua
│ ├── dafny.lua
│ ├── dagger.lua
│ ├── dartls.lua
│ ├── dcmls.lua
│ ├── debputy.lua
│ ├── delphi_ls.lua
│ ├── denols.lua
│ ├── dhall_lsp_server.lua
│ ├── diagnosticls.lua
│ ├── digestif.lua
│ ├── djlsp.lua
│ ├── docker_compose_language_service.lua
│ ├── dockerls.lua
│ ├── dolmenls.lua
│ ├── dotls.lua
│ ├── dprint.lua
│ ├── drools_lsp.lua
│ ├── ds_pinyin_lsp.lua
│ ├── dts_lsp.lua
│ ├── earthlyls.lua
│ ├── ecsact.lua
│ ├── efm.lua
│ ├── elixirls.lua
│ ├── elmls.lua
│ ├── elp.lua
│ ├── ember.lua
│ ├── emmet_language_server.lua
│ ├── emmet_ls.lua
│ ├── erg_language_server.lua
│ ├── erlangls.lua
│ ├── esbonio.lua
│ ├── eslint.lua
│ ├── facility_language_server.lua
│ ├── fennel_language_server.lua
│ ├── fennel_ls.lua
│ ├── fish_lsp.lua
│ ├── flow.lua
│ ├── flux_lsp.lua
│ ├── foam_ls.lua
│ ├── fortls.lua
│ ├── fsautocomplete.lua
│ ├── fsharp_language_server.lua
│ ├── fstar.lua
│ ├── futhark_lsp.lua
│ ├── gdscript.lua
│ ├── gdshader_lsp.lua
│ ├── gh_actions_ls.lua
│ ├── ghcide.lua
│ ├── ghdl_ls.lua
│ ├── ginko_ls.lua
│ ├── gitlab_ci_ls.lua
│ ├── glasgow.lua
│ ├── gleam.lua
│ ├── glint.lua
│ ├── glsl_analyzer.lua
│ ├── glslls.lua
│ ├── golangci_lint_ls.lua
│ ├── gopls.lua
│ ├── gradle_ls.lua
│ ├── grammarly.lua
│ ├── graphql.lua
│ ├── groovyls.lua
│ ├── guile_ls.lua
│ ├── harper_ls.lua
│ ├── haxe_language_server.lua
│ ├── hdl_checker.lua
│ ├── helm_ls.lua
│ ├── hhvm.lua
│ ├── hie.lua
│ ├── hlasm.lua
│ ├── hls.lua
│ ├── hoon_ls.lua
│ ├── html.lua
│ ├── htmx.lua
│ ├── hydra_lsp.lua
│ ├── hyprls.lua
│ ├── idris2_lsp.lua
│ ├── intelephense.lua
│ ├── janet_lsp.lua
│ ├── java_language_server.lua
│ ├── jdtls.lua
│ ├── jedi_language_server.lua
│ ├── jinja_lsp.lua
│ ├── jqls.lua
│ ├── jsonls.lua
│ ├── jsonnet_ls.lua
│ ├── julials.lua
│ ├── just.lua
│ ├── kcl.lua
│ ├── koka.lua
│ ├── kotlin_language_server.lua
│ ├── kulala_ls.lua
│ ├── laravel_ls.lua
│ ├── lean3ls.lua
│ ├── leanls.lua
│ ├── lelwel_ls.lua
│ ├── lemminx.lua
│ ├── lexical.lua
│ ├── lsp_ai.lua
│ ├── ltex.lua
│ ├── ltex_plus.lua
│ ├── lua_ls.lua
│ ├── luau_lsp.lua
│ ├── lwc_ls.lua
│ ├── m68k.lua
│ ├── markdown_oxide.lua
│ ├── marko-js.lua
│ ├── marksman.lua
│ ├── matlab_ls.lua
│ ├── mdx_analyzer.lua
│ ├── mesonlsp.lua
│ ├── metals.lua
│ ├── millet.lua
│ ├── mint.lua
│ ├── mlir_lsp_server.lua
│ ├── mlir_pdll_lsp_server.lua
│ ├── mm0_ls.lua
│ ├── mojo.lua
│ ├── motoko_lsp.lua
│ ├── move_analyzer.lua
│ ├── msbuild_project_tools_server.lua
│ ├── muon.lua
│ ├── mutt_ls.lua
│ ├── nelua_lsp.lua
│ ├── neocmake.lua
│ ├── nextflow_ls.lua
│ ├── nextls.lua
│ ├── nginx_language_server.lua
│ ├── nickel_ls.lua
│ ├── nil_ls.lua
│ ├── nim_langserver.lua
│ ├── nimls.lua
│ ├── nixd.lua
│ ├── nomad_lsp.lua
│ ├── ntt.lua
│ ├── nushell.lua
│ ├── nxls.lua
│ ├── ocamlls.lua
│ ├── ocamllsp.lua
│ ├── ols.lua
│ ├── omnisharp.lua
│ ├── opencl_ls.lua
│ ├── openedge_ls.lua
│ ├── openscad_ls.lua
│ ├── openscad_lsp.lua
│ ├── oxlint.lua
│ ├── pact_ls.lua
│ ├── pasls.lua
│ ├── pbls.lua
│ ├── perlls.lua
│ ├── perlnavigator.lua
│ ├── perlpls.lua
│ ├── pest_ls.lua
│ ├── phan.lua
│ ├── phpactor.lua
│ ├── pico8_ls.lua
│ ├── pkgbuild_language_server.lua
│ ├── please.lua
│ ├── poryscript_pls.lua
│ ├── postgres_lsp.lua
│ ├── powershell_es.lua
│ ├── prismals.lua
│ ├── prolog_ls.lua
│ ├── prosemd_lsp.lua
│ ├── protols.lua
│ ├── psalm.lua
│ ├── pug.lua
│ ├── puppet.lua
│ ├── purescriptls.lua
│ ├── pylsp.lua
│ ├── pylyzer.lua
│ ├── pyre.lua
│ ├── pyright.lua
│ ├── qmlls.lua
│ ├── quick_lint_js.lua
│ ├── r_language_server.lua
│ ├── racket_langserver.lua
│ ├── raku_navigator.lua
│ ├── reason_ls.lua
│ ├── regal.lua
│ ├── regols.lua
│ ├── relay_lsp.lua
│ ├── remark_ls.lua
│ ├── rescriptls.lua
│ ├── rls.lua
│ ├── rnix.lua
│ ├── robotcode.lua
│ ├── robotframework_ls.lua
│ ├── roc_ls.lua
│ ├── rome.lua
│ ├── rpmspec.lua
│ ├── rubocop.lua
│ ├── ruby_lsp.lua
│ ├── ruff.lua
│ ├── ruff_lsp.lua
│ ├── rune_languageserver.lua
│ ├── rust_analyzer.lua
│ ├── salt_ls.lua
│ ├── scheme_langserver.lua
│ ├── scry.lua
│ ├── selene3p_ls.lua
│ ├── serve_d.lua
│ ├── shopify_theme_ls.lua
│ ├── sixtyfps.lua
│ ├── slangd.lua
│ ├── slint_lsp.lua
│ ├── smarty_ls.lua
│ ├── smithy_ls.lua
│ ├── snakeskin_ls.lua
│ ├── snyk_ls.lua
│ ├── solang.lua
│ ├── solargraph.lua
│ ├── solc.lua
│ ├── solidity.lua
│ ├── solidity_ls.lua
│ ├── solidity_ls_nomicfoundation.lua
│ ├── somesass_ls.lua
│ ├── sorbet.lua
│ ├── sourcekit.lua
│ ├── sourcery.lua
│ ├── spectral.lua
│ ├── spyglassmc_language_server.lua
│ ├── sqlls.lua
│ ├── sqls.lua
│ ├── standardrb.lua
│ ├── starlark_rust.lua
│ ├── starpls.lua
│ ├── statix.lua
│ ├── steep.lua
│ ├── stimulus_ls.lua
│ ├── stylelint_lsp.lua
│ ├── stylua3p_ls.lua
│ ├── superhtml.lua
│ ├── svelte.lua
│ ├── svlangserver.lua
│ ├── svls.lua
│ ├── swift_mesonls.lua
│ ├── syntax_tree.lua
│ ├── systemd_ls.lua
│ ├── tabby_ml.lua
│ ├── tailwindcss.lua
│ ├── taplo.lua
│ ├── tblgen_lsp_server.lua
│ ├── teal_ls.lua
│ ├── templ.lua
│ ├── terraform_lsp.lua
│ ├── terraformls.lua
│ ├── texlab.lua
│ ├── textlsp.lua
│ ├── tflint.lua
│ ├── theme_check.lua
│ ├── thriftls.lua
│ ├── tilt_ls.lua
│ ├── tinymist.lua
│ ├── ts_ls.lua
│ ├── ts_query_ls.lua
│ ├── tsp_server.lua
│ ├── ttags.lua
│ ├── turbo_ls.lua
│ ├── turtle_ls.lua
│ ├── tvm_ffi_navigator.lua
│ ├── twiggy_language_server.lua
│ ├── typeprof.lua
│ ├── typos_lsp.lua
│ ├── typst_lsp.lua
│ ├── uiua.lua
│ ├── ungrammar_languageserver.lua
│ ├── unison.lua
│ ├── unocss.lua
│ ├── uvls.lua
│ ├── v_analyzer.lua
│ ├── vacuum.lua
│ ├── vala_ls.lua
│ ├── vale_ls.lua
│ ├── vdmj.lua
│ ├── vectorcode_server.lua
│ ├── verible.lua
│ ├── veridian.lua
│ ├── veryl_ls.lua
│ ├── vhdl_ls.lua
│ ├── vimls.lua
│ ├── visualforce_ls.lua
│ ├── vls.lua
│ ├── volar.lua
│ ├── vscoqtop.lua
│ ├── vtsls.lua
│ ├── vuels.lua
│ ├── wasm_language_tools.lua
│ ├── wgsl_analyzer.lua
│ ├── yamlls.lua
│ ├── yang_lsp.lua
│ ├── yls.lua
│ ├── ziggy.lua
│ ├── ziggy_schema.lua
│ ├── zk.lua
│ └── zls.lua
│ ├── health.lua
│ ├── manager.lua
│ ├── ui
│ └── windows.lua
│ └── util.lua
├── neovim.yml
├── nvim-lspconfig-scm-1.rockspec
├── plugin
└── lspconfig.lua
├── scripts
├── docgen.lua
├── docs_template.md
└── docs_template.txt
├── selene.toml
└── test
├── lspconfig_spec.lua
└── test_dir
├── a
└── a_marker.txt
└── root_marker.txt
/.codespellignorewords:
--------------------------------------------------------------------------------
1 | abl
2 | als
3 | edn
4 | esy
5 | protols
6 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | tab_width = 8
7 | end_of_line = lf
8 | insert_final_newline = true
9 |
10 | [*.lua]
11 | max_line_length = 120
12 |
13 | [{Makefile,**/Makefile,runtime/doc/*.txt}]
14 | indent_style = tab
15 | indent_size = 8
16 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @glepnir
2 |
3 | /.github/ @dundargoc
4 |
5 | /flake.lock @teto
6 | /flake.nix @teto
7 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Question
4 | url: https://vi.stackexchange.com/
5 | about: Usage questions and support requests
6 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Pull Request
3 | about: Submit a pull request
4 | title: ''
5 | ---
6 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: "github-actions"
4 | directory: "/"
5 | schedule:
6 | interval: "daily"
7 | commit-message:
8 | prefix: "ci"
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .luacheckcache
2 | neovim
3 | doc/tags
4 |
--------------------------------------------------------------------------------
/.luacheckrc:
--------------------------------------------------------------------------------
1 | -- vim: ft=lua tw=80
2 |
3 | -- Rerun tests only if their modification time changed.
4 | cache = true
5 |
6 | ignore = {
7 | "122", -- Setting a read-only field of a global variable.
8 | "212", -- Unused argument, In the case of callback function, _arg_name is easier to understand than _, so this option is set to off.
9 | "631", -- max_line_length, vscode pkg URL is too long
10 | }
11 |
12 | -- Global objects defined by the C code
13 | read_globals = {
14 | "vim",
15 | }
16 |
--------------------------------------------------------------------------------
/.luarc.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
3 | "runtime": {
4 | "version": "LuaJIT"
5 | },
6 | "workspace": {
7 | "library": [
8 | "lua",
9 | "$VIMRUNTIME",
10 | "${3rd}/luv/library"
11 | ],
12 | "checkThirdParty": false
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/.stylua.toml:
--------------------------------------------------------------------------------
1 | column_width = 120
2 | line_endings = "Unix"
3 | indent_type = "Spaces"
4 | indent_width = 2
5 | quote_style = "AutoPreferSingle"
6 | call_parentheses = "Input"
7 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | test:
2 | vusted ./test
3 |
4 | lint:
5 | @printf "\nRunning luacheck\n"
6 | luacheck -q lua/* test/*
7 | @printf "\nRunning selene\n"
8 | selene --display-style=quiet .
9 | @printf "\nRunning stylua\n"
10 | stylua --check .
11 |
12 | .PHONY: test lint
13 |
--------------------------------------------------------------------------------
/doc/server_configurations.md:
--------------------------------------------------------------------------------
1 | # This file was renamed to [configs.md](./configs.md).
2 |
--------------------------------------------------------------------------------
/doc/server_configurations.txt:
--------------------------------------------------------------------------------
1 | This file was renamed to "configs.txt".
2 |
--------------------------------------------------------------------------------
/lsp/agda_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/agda/agda-language-server
4 | ---
5 | --- Language Server for Agda.
6 |
7 | local util = require 'lspconfig.util'
8 |
9 | return {
10 | cmd = { 'als' },
11 | filetypes = { 'agda' },
12 | root_dir = function(bufnr, on_dir)
13 | local fname = vim.api.nvim_buf_get_name(bufnr)
14 | on_dir(util.root_pattern('.git', '*.agda-lib')(fname))
15 | end,
16 | }
17 |
--------------------------------------------------------------------------------
/lsp/aiken.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/aiken-lang/aiken
4 | ---
5 | --- A language server for Aiken Programming Language.
6 | --- [Installation](https://aiken-lang.org/installation-instructions)
7 | ---
8 | --- It can be i
9 | return {
10 | cmd = { 'aiken', 'lsp' },
11 | filetypes = { 'aiken' },
12 | root_markers = { 'aiken.toml', '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/air.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/posit-dev/air
4 | ---
5 | --- Air is an R formatter and language server, written in Rust.
6 | ---
7 | --- Refer to the [documentation](https://posit-dev.github.io/air/editors.html) for more details.
8 | return {
9 | cmd = { 'air', 'language-server' },
10 | filetypes = { 'r' },
11 | root_markers = { 'air.toml', '.air.toml', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/antlersls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://www.npmjs.com/package/antlers-language-server
4 | ---
5 | --- `antlersls` can be installed via `npm`:
6 | --- ```sh
7 | --- npm install -g antlers-language-server
8 | --- ```
9 | return {
10 | cmd = { 'antlersls', '--stdio' },
11 | filetypes = { 'html', 'antlers' },
12 | root_markers = { 'composer.json' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/asm_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/bergercookie/asm-lsp
4 | ---
5 | --- Language Server for NASM/GAS/GO Assembly
6 | ---
7 | --- `asm-lsp` can be installed via cargo:
8 | --- cargo install asm-lsp
9 | return {
10 | cmd = { 'asm-lsp' },
11 | filetypes = { 'asm', 'vmasm' },
12 | root_markers = { '.asm-lsp.toml', '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/awk_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/Beaglefoot/awk-language-server/
4 | ---
5 | --- `awk-language-server` can be installed via `npm`:
6 | --- ```sh
7 | --- npm install -g awk-language-server
8 | --- ```
9 |
10 | return {
11 | cmd = { 'awk-language-server' },
12 | filetypes = { 'awk' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/ballerina.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- Ballerina language server
4 | ---
5 | --- The Ballerina language's CLI tool comes with its own language server implementation.
6 | --- The `bal` command line tool must be installed and available in your system's PATH.
7 | return {
8 | cmd = { 'bal', 'start-language-server' },
9 | filetypes = { 'ballerina' },
10 | root_markers = { 'Ballerina.toml' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/basics_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/antonk52/basics-language-server/
4 | ---
5 | --- Buffer, path, and snippet completion
6 | ---
7 | --- ```sh
8 | --- npm install -g basics-language-server
9 | --- ```
10 | return {
11 | cmd = { 'basics-language-server' },
12 | settings = {
13 | buffer = {
14 | enable = true,
15 | minCompletionLength = 4,
16 | },
17 | path = {
18 | enable = true,
19 | },
20 | snippet = {
21 | enable = false,
22 | sources = {},
23 | },
24 | },
25 | }
26 |
--------------------------------------------------------------------------------
/lsp/bazelrc_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/salesforce-misc/bazelrc-lsp
4 | ---
5 | --- `bazelrc-lsp` is a LSP for `.bazelrc` configuration files.
6 | ---
7 | --- The `.bazelrc` file type is not detected automatically, you can register it manually (see below) or override the filetypes:
8 | ---
9 | --- ```lua
10 | --- vim.filetype.add {
11 | --- pattern = {
12 | --- ['.*.bazelrc'] = 'bazelrc',
13 | --- },
14 | --- }
15 | --- ```
16 | return {
17 | cmd = { 'bazelrc-lsp', 'lsp' },
18 | filetypes = { 'bazelrc' },
19 | root_markers = { 'WORKSPACE', 'WORKSPACE.bazel', 'MODULE.bazel' },
20 | }
21 |
--------------------------------------------------------------------------------
/lsp/beancount.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/polarmutex/beancount-language-server#installation
4 | ---
5 | --- See https://github.com/polarmutex/beancount-language-server#configuration for configuration options
6 | return {
7 | cmd = { 'beancount-language-server', '--stdio' },
8 | filetypes = { 'beancount', 'bean' },
9 | root_markers = { '.git' },
10 | init_options = {},
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/bitbake_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- 🛠️ bitbake language server
4 | return {
5 | cmd = { 'bitbake-language-server' },
6 | filetypes = { 'bitbake' },
7 | root_markers = { '.git' },
8 | }
9 |
--------------------------------------------------------------------------------
/lsp/bqls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/kitagry/bqls
4 | ---
5 | --- The `bqls` BigQuery language server can be installed by running:
6 | ---
7 | --- ```sh
8 | --- $ go install github.com/kitagry/bqls@latest
9 | --- ```
10 | return {
11 | cmd = { 'bqls' },
12 | filetypes = { 'sql' },
13 | root_markers = { '.git' },
14 | settings = {},
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/bright_script.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/RokuCommunity/brighterscript
4 | ---
5 | --- `brightscript` can be installed via `npm`:
6 | --- ```sh
7 | --- npm install -g brighterscript
8 | --- ```
9 | return {
10 | cmd = { 'bsc', '--lsp', '--stdio' },
11 | filetypes = { 'brs' },
12 | root_markers = { 'makefile', 'Makefile', '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/bsl_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/1c-syntax/bsl-language-server
4 | ---
5 | --- Language Server Protocol implementation for 1C (BSL) - 1C:Enterprise 8 and OneScript languages.
6 |
7 | return {
8 | filetypes = { 'bsl', 'os' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/buck2.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/facebook/buck2
4 | ---
5 | --- Build system, successor to Buck
6 | ---
7 | --- To better detect Buck2 project files, the following can be added:
8 | ---
9 | --- ```
10 | --- vim.cmd [[ autocmd BufRead,BufNewFile *.bxl,BUCK,TARGETS set filetype=bzl ]]
11 | --- ```
12 | return {
13 | cmd = { 'buck2', 'lsp' },
14 | filetypes = { 'bzl' },
15 | root_markers = { '.buckconfig' },
16 | }
17 |
--------------------------------------------------------------------------------
/lsp/buddy_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/buddy-compiler/buddy-mlir#buddy-lsp-server
4 | --- The Language Server for the buddy-mlir, a drop-in replacement for mlir-lsp-server,
5 | --- supporting new dialects defined in buddy-mlir.
6 | --- `buddy-lsp-server` can be installed at the buddy-mlir repository (buddy-compiler/buddy-mlir)
7 | return {
8 | cmd = { 'buddy-lsp-server' },
9 | filetypes = { 'mlir' },
10 | root_markers = { '.git' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/buf_ls.lua:
--------------------------------------------------------------------------------
1 | --- @brief
2 | --- https://github.com/bufbuild/buf
3 | ---
4 | --- buf beta lsp included in the cli itself
5 | ---
6 | --- buf beta lsp is a Protobuf language server compatible with Buf modules and workspaces
7 |
8 | return {
9 | cmd = { 'buf', 'beta', 'lsp', '--timeout=0', '--log-format=text' },
10 | filetypes = { 'proto' },
11 | root_markers = { 'buf.yaml', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/bufls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/bufbuild/buf-language-server
4 | ---
5 | --- `buf-language-server` can be installed via `go install`:
6 | --- ```sh
7 | --- go install github.com/bufbuild/buf-language-server/cmd/bufls@latest
8 | --- ```
9 | ---
10 | --- bufls is a Protobuf language server compatible with Buf modules and workspaces
11 | return {
12 | cmd = { 'bufls', 'serve' },
13 | filetypes = { 'proto' },
14 | root_markers = { 'buf.work.yaml', '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/bzl.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://bzl.io/
4 | ---
5 | --- https://docs.stack.build/docs/cli/installation
6 | ---
7 | --- https://docs.stack.build/docs/vscode/starlark-language-server
8 | return {
9 | cmd = { 'bzl', 'lsp', 'serve' },
10 | filetypes = { 'bzl' },
11 | -- https://docs.bazel.build/versions/5.4.1/build-ref.html#workspace
12 | root_markers = { 'WORKSPACE', 'WORKSPACE.bazel' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/c3_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/pherrymason/c3-lsp
4 | ---
5 | --- Language Server for c3.
6 | return {
7 | cmd = { 'c3lsp' },
8 | root_markers = { 'project.json', 'manifest.json', '.git' },
9 | filetypes = { 'c3', 'c3i' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/cds_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://cap.cloud.sap/docs/
4 | ---
5 | --- `cds-lsp` can be installed via `npm`:
6 | ---
7 | --- ```sh
8 | --- npm i -g @sap/cds-lsp
9 | --- ```
10 | return {
11 | cmd = { 'cds-lsp', '--stdio' },
12 | filetypes = { 'cds' },
13 | -- init_options = { provideFormatter = true }, -- needed to enable formatting capabilities
14 | root_markers = { 'package.json', 'db', 'srv' },
15 | settings = {
16 | cds = { validate = true },
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/circom-lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- [Circom Language Server](https://github.com/rubydusa/circom-lsp)
4 | ---
5 | --- `circom-lsp`, the language server for the Circom language.
6 | return {
7 | cmd = { 'circom-lsp' },
8 | filetypes = { 'circom' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/clarity_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | ---`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.
4 | ---
5 | --- To learn how to configure the clarity language server, see the [clarity-lsp documentation](https://github.com/hirosystems/clarity-lsp).
6 | return {
7 | cmd = { 'clarity-lsp' },
8 | filetypes = { 'clar', 'clarity' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/clojure_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/clojure-lsp/clojure-lsp
4 | ---
5 | --- Clojure Language Server
6 | return {
7 | cmd = { 'clojure-lsp' },
8 | filetypes = { 'clojure', 'edn' },
9 | root_markers = { 'project.clj', 'deps.edn', 'build.boot', 'shadow-cljs.edn', '.git', 'bb.edn' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/cmake.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/regen100/cmake-language-server
4 | ---
5 | --- CMake LSP Implementation
6 | return {
7 | cmd = { 'cmake-language-server' },
8 | filetypes = { 'cmake' },
9 | root_markers = { 'CMakePresets.json', 'CTestConfig.cmake', '.git', 'build', 'cmake' },
10 | init_options = {
11 | buildDirectory = 'build',
12 | },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/cobol_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- Cobol language support
4 | return {
5 | cmd = { 'cobol-language-support' },
6 | filetypes = { 'cobol' },
7 | root_markers = { '.git' },
8 | }
9 |
--------------------------------------------------------------------------------
/lsp/coffeesense.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/phil294/coffeesense
4 | ---
5 | --- CoffeeSense Language Server
6 | --- `coffeesense-language-server` can be installed via `npm`:
7 | --- ```sh
8 | --- npm install -g coffeesense-language-server
9 | --- ```
10 | return {
11 | cmd = { 'coffeesense-language-server', '--stdio' },
12 | filetypes = { 'coffee' },
13 | root_markers = { 'package.json' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/coq_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/ejgallego/coq-lsp/
4 | return {
5 | cmd = { 'coq-lsp' },
6 | filetypes = { 'coq' },
7 | root_markers = { '_CoqProject', '.git' },
8 | }
9 |
--------------------------------------------------------------------------------
/lsp/crystalline.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/elbywan/crystalline
4 | ---
5 | --- Crystal language server.
6 | return {
7 | cmd = { 'crystalline' },
8 | filetypes = { 'crystal' },
9 | root_markers = { 'shard.yml', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/cspell_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- [cspell language server](https://github.com/vlabo/cspell-lsp)
4 | ---
5 | return {
6 | cmd = { 'cspell-lsp', '--stdio' },
7 | root_markers = {
8 | '.git',
9 | 'cspell.json',
10 | '.cspell.json',
11 | 'cspell.json',
12 | '.cSpell.json',
13 | 'cSpell.json',
14 | 'cspell.config.js',
15 | 'cspell.config.cjs',
16 | 'cspell.config.json',
17 | 'cspell.config.yaml',
18 | 'cspell.config.yml',
19 | 'cspell.yaml',
20 | 'cspell.yml',
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lsp/cssmodules_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/antonk52/cssmodules-language-server
4 | ---
5 | --- Language server for autocompletion and go-to-definition functionality for CSS modules.
6 | ---
7 | --- You can install cssmodules-language-server via npm:
8 | --- ```sh
9 | --- npm install -g cssmodules-language-server
10 | --- ```
11 | return {
12 | cmd = { 'cssmodules-language-server' },
13 | filetypes = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' },
14 | root_markers = { 'package.json' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/cucumber_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://cucumber.io
4 | --- https://github.com/cucumber/common
5 | --- https://www.npmjs.com/package/@cucumber/language-server
6 | ---
7 | --- Language server for Cucumber.
8 | ---
9 | --- `cucumber-language-server` can be installed via `npm`:
10 | --- ```sh
11 | --- npm install -g @cucumber/language-server
12 | --- ```
13 | return {
14 | cmd = { 'cucumber-language-server', '--stdio' },
15 | filetypes = { 'cucumber' },
16 | root_markers = { '.git' },
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/cue.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/cue-lang/cue
4 | ---
5 | --- CUE makes it easy to validate data, write schemas, and ensure configurations align with policies.
6 | return {
7 | cmd = { 'cue', 'lsp' },
8 | filetypes = { 'cue' },
9 | root_markers = { 'cue.mod', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/cypher_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/neo4j/cypher-language-support/tree/main/packages/language-server
4 | ---
5 | --- `cypher-language-server`, language server for Cypher query language.
6 | --- Part of the umbrella project cypher-language-support: https://github.com/neo4j/cypher-language-support
7 | ---
8 | --- `cypher-language-server` can be installed via `npm`:
9 | --- ```sh
10 | --- npm i -g @neo4j-cypher/language-server
11 | --- ```
12 | return {
13 | cmd = { 'cypher-language-server', '--stdio' },
14 | filetypes = { 'cypher' },
15 | root_markers = { '.git' },
16 | }
17 |
--------------------------------------------------------------------------------
/lsp/daedalus_ls.lua:
--------------------------------------------------------------------------------
1 | --- @brief
2 | ---
3 | --- DaedalusLanguageServer
4 |
5 | return {
6 | cmd = { 'DaedalusLanguageServer' },
7 | filetypes = { 'd' },
8 | root_markers = {
9 | 'Gothic.src',
10 | 'Camera.src',
11 | 'Menu.src',
12 | 'Music.src',
13 | 'ParticleFX.src',
14 | 'SFX.src',
15 | 'VisualFX.src',
16 | },
17 | settings = {
18 | DaedalusLanguageServer = {
19 | loglevel = 'debug',
20 | inlayHints = { constants = true },
21 | numParserThreads = 16,
22 | fileEncoding = 'Windows-1252',
23 | srcFileEncoding = 'Windows-1252',
24 | },
25 | },
26 | }
27 |
--------------------------------------------------------------------------------
/lsp/dafny.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- Support for the Dafny language server.
4 |
5 | -- The default `cmd` uses "dafny server", which works on Dafny 4.0.0+. For
6 | -- older versions of Dafny, you can compile the language server from source at
7 | -- [dafny-lang/language-server-csharp](https://github.com/dafny-lang/language-server-csharp)
8 | -- and set `cmd = {"dotnet", ""}`.
9 | return {
10 | cmd = { 'dafny', 'server' },
11 | filetypes = { 'dfy', 'dafny' },
12 | root_markers = { '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/dagger.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/dagger/cuelsp
4 | ---
5 | --- Dagger's lsp server for cuelang.
6 | return {
7 | cmd = { 'cuelsp' },
8 | filetypes = { 'cue' },
9 | root_markers = { 'cue.mod', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/dartls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server/tool/lsp_spec
4 | ---
5 | --- Language server for dart.
6 | return {
7 | cmd = { 'dart', 'language-server', '--protocol=lsp' },
8 | filetypes = { 'dart' },
9 | root_markers = { 'pubspec.yaml' },
10 | init_options = {
11 | onlyAnalyzeProjectsWithOpenFiles = true,
12 | suggestFromUnimportedLibraries = true,
13 | closingLabels = true,
14 | outline = true,
15 | flutterOutline = true,
16 | },
17 | settings = {
18 | dart = {
19 | completeFunctionCalls = true,
20 | showTodos = true,
21 | },
22 | },
23 | }
24 |
--------------------------------------------------------------------------------
/lsp/dcmls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://dcm.dev/
4 | ---
5 | --- Language server for DCM analyzer.
6 | return {
7 | cmd = { 'dcm', 'start-server', '--client=neovim' },
8 | filetypes = { 'dart' },
9 | root_markers = { 'pubspec.yaml' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/debputy.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://salsa.debian.org/debian/debputy
4 | ---
5 | --- Language Server for Debian packages.
6 | return {
7 | cmd = { 'debputy', 'lsp', 'server' },
8 | filetypes = { 'debcontrol', 'debcopyright', 'debchangelog', 'make', 'yaml' },
9 | root_markers = { 'debian' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/dhall_lsp_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-lsp-server
4 | ---
5 | --- language server for dhall
6 | ---
7 | --- `dhall-lsp-server` can be installed via cabal:
8 | --- ```sh
9 | --- cabal install dhall-lsp-server
10 | --- ```
11 | --- prebuilt binaries can be found [here](https://github.com/dhall-lang/dhall-haskell/releases).
12 |
13 | return {
14 | cmd = { 'dhall-lsp-server' },
15 | filetypes = { 'dhall' },
16 | root_markers = { '.git' },
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/diagnosticls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/iamcco/diagnostic-languageserver
4 | ---
5 | --- Diagnostic language server integrate with linters.
6 | return {
7 | -- Configuration from https://github.com/iamcco/diagnostic-languageserver#config--document
8 | cmd = { 'diagnostic-languageserver', '--stdio' },
9 | root_markers = { '.git' },
10 | -- Empty by default, override to add filetypes.
11 | filetypes = {},
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/digestif.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/astoff/digestif
4 | ---
5 | --- Digestif is a code analyzer, and a language server, for LaTeX, ConTeXt et caterva. It provides
6 | ---
7 | --- context-sensitive completion, documentation, code navigation, and related functionality to any
8 | ---
9 | --- text editor that speaks the LSP protocol.
10 | return {
11 | cmd = { 'digestif' },
12 | filetypes = { 'tex', 'plaintex', 'context' },
13 | root_markers = { '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/djlsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/fourdigits/django-template-lsp
4 | ---
5 | --- `djlsp`, a language server for Django templates.
6 |
7 | return {
8 | cmd = { 'djlsp' },
9 | filetypes = { 'html', 'htmldjango' },
10 | root_markers = { '.git' },
11 | settings = {},
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/dolmenls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/Gbury/dolmen/blob/master/doc/lsp.md
4 | ---
5 | --- `dolmenls` can be installed via `opam`
6 | --- ```sh
7 | --- opam install dolmen_lsp
8 | --- ```
9 | return {
10 | cmd = { 'dolmenls' },
11 | filetypes = { 'smt2', 'tptp', 'p', 'cnf', 'icnf', 'zf' },
12 | root_markers = { '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/dotls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nikeee/dot-language-server
4 | ---
5 | --- `dot-language-server` can be installed via `npm`:
6 | --- ```sh
7 | --- npm install -g dot-language-server
8 | --- ```
9 | return {
10 | cmd = { 'dot-language-server', '--stdio' },
11 | filetypes = { 'dot' },
12 | root_markers = { '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/dprint.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/dprint/dprint
4 | ---
5 | --- Pluggable and configurable code formatting platform written in Rust.
6 | return {
7 | cmd = { 'dprint', 'lsp' },
8 | filetypes = {
9 | 'javascript',
10 | 'javascriptreact',
11 | 'typescript',
12 | 'typescriptreact',
13 | 'json',
14 | 'jsonc',
15 | 'markdown',
16 | 'python',
17 | 'toml',
18 | 'rust',
19 | 'roslyn',
20 | 'graphql',
21 | },
22 | root_markers = { 'dprint.json', '.dprint.json', 'dprint.jsonc', '.dprint.jsonc' },
23 | settings = {},
24 | }
25 |
--------------------------------------------------------------------------------
/lsp/earthlyls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/glehmann/earthlyls
4 | ---
5 | --- A fast language server for earthly.
6 |
7 | return {
8 | cmd = { 'earthlyls' },
9 | filetypes = { 'earthfile' },
10 | root_markers = { 'Earthfile' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/ecsact.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/ecsact-dev/ecsact_lsp_server
4 | ---
5 | --- Language server for Ecsact.
6 | ---
7 | --- The default cmd assumes `ecsact_lsp_server` is in your PATH. Typically from the
8 | --- Ecsact SDK: https://ecsact.dev/start
9 | return {
10 | cmd = { 'ecsact_lsp_server', '--stdio' },
11 | filetypes = { 'ecsact' },
12 | root_markers = { '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/elp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://whatsapp.github.io/erlang-language-platform
4 | ---
5 | --- ELP integrates Erlang into modern IDEs via the language server protocol and was
6 | --- inspired by rust-analyzer.
7 | return {
8 | cmd = { 'elp', 'server' },
9 | filetypes = { 'erlang' },
10 | root_markers = { 'rebar.config', 'erlang.mk', '.git' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/ember.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/ember-tooling/ember-language-server
4 | ---
5 | --- `ember-language-server` can be installed via `npm`:
6 | ---
7 | --- ```sh
8 | --- npm install -g @ember-tooling/ember-language-server
9 | --- ```
10 | return {
11 | cmd = { 'ember-language-server', '--stdio' },
12 | filetypes = { 'handlebars', 'typescript', 'javascript', 'typescript.glimmer', 'javascript.glimmer' },
13 | root_markers = { 'ember-cli-build.js', '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/emmet_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/olrtg/emmet-language-server
4 | ---
5 | --- Package can be installed via `npm`:
6 | --- ```sh
7 | --- npm install -g @olrtg/emmet-language-server
8 | --- ```
9 | return {
10 | cmd = { 'emmet-language-server', '--stdio' },
11 | filetypes = {
12 | 'astro',
13 | 'css',
14 | 'eruby',
15 | 'html',
16 | 'htmlangular',
17 | 'htmldjango',
18 | 'javascriptreact',
19 | 'less',
20 | 'pug',
21 | 'sass',
22 | 'scss',
23 | 'svelte',
24 | 'templ',
25 | 'typescriptreact',
26 | 'vue',
27 | },
28 | root_markers = { '.git' },
29 | }
30 |
--------------------------------------------------------------------------------
/lsp/emmet_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/aca/emmet-ls
4 | ---
5 | --- Package can be installed via `npm`:
6 | --- ```sh
7 | --- npm install -g emmet-ls
8 | --- ```
9 | return {
10 | cmd = { 'emmet-ls', '--stdio' },
11 | filetypes = {
12 | 'astro',
13 | 'css',
14 | 'eruby',
15 | 'html',
16 | 'htmlangular',
17 | 'htmldjango',
18 | 'javascriptreact',
19 | 'less',
20 | 'pug',
21 | 'sass',
22 | 'scss',
23 | 'svelte',
24 | 'templ',
25 | 'typescriptreact',
26 | 'vue',
27 | },
28 | root_markers = { '.git' },
29 | }
30 |
--------------------------------------------------------------------------------
/lsp/erg_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/erg-lang/erg#flags ELS
4 | ---
5 | --- ELS (erg-language-server) is a language server for the Erg programming language.
6 | ---
7 | --- erg-language-server can be installed via `cargo` and used as follows:
8 | ---
9 | --- ```sh
10 | --- cargo install erg --features els
11 | --- erg --language-server
12 | --- ```
13 |
14 | return {
15 | cmd = { 'erg', '--language-server' },
16 | filetypes = { 'erg' },
17 | root_markers = { 'package.er', '.git' },
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/facility_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/FacilityApi/FacilityLanguageServer
4 | ---
5 | --- Facility language server protocol (LSP) support.
6 | return {
7 | cmd = { 'facility-language-server' },
8 | filetypes = { 'fsd' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/fennel_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/rydesun/fennel-language-server
4 | ---
5 | --- Fennel language server protocol (LSP) support.
6 | return {
7 | cmd = { 'fennel-language-server' },
8 | filetypes = { 'fennel' },
9 | root_markers = { '.git' },
10 | settings = {},
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/fish_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/ndonfris/fish-lsp
4 | ---
5 | --- A Language Server Protocol (LSP) tailored for the fish shell.
6 | --- This project aims to enhance the coding experience for fish,
7 | --- by introducing a suite of intelligent features like auto-completion,
8 | --- scope aware symbol analysis, per-token hover generation, and many others.
9 | ---
10 | --- [homepage](https://www.fish-lsp.dev/)
11 | return {
12 | cmd = { 'fish-lsp', 'start' },
13 | filetypes = { 'fish' },
14 | root_markers = { 'config.fish', '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/flow.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://flow.org/
4 | --- https://github.com/facebook/flow
5 | ---
6 | --- See below for how to setup Flow itself.
7 | --- https://flow.org/en/docs/install/
8 | ---
9 | --- See below for lsp command options.
10 | ---
11 | --- ```sh
12 | --- npx flow lsp --help
13 | --- ```
14 | return {
15 | cmd = { 'npx', '--no-install', 'flow', 'lsp' },
16 | filetypes = { 'javascript', 'javascriptreact', 'javascript.jsx' },
17 | root_markers = { '.flowconfig' },
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/flux_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/influxdata/flux-lsp
4 | --- `flux-lsp` can be installed via `cargo`:
5 | --- ```sh
6 | --- cargo install --git https://github.com/influxdata/flux-lsp
7 | --- ```
8 | return {
9 | cmd = { 'flux-lsp' },
10 | filetypes = { 'flux' },
11 | root_markers = { '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/foam_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/FoamScience/foam-language-server
4 | ---
5 | --- `foam-language-server` can be installed via `npm`
6 | --- ```sh
7 | --- npm install -g foam-language-server
8 | --- ```
9 |
10 | return {
11 | cmd = { 'foam-ls', '--stdio' },
12 | filetypes = { 'foam', 'OpenFOAM' },
13 | root_dir = function(bufnr, on_dir)
14 | local fname = vim.api.nvim_buf_get_name(bufnr)
15 | on_dir(vim.iter(vim.fs.parents(fname)):find(function(path)
16 | if vim.uv.fs_stat(path .. '/system/controlDict') then
17 | return path
18 | end
19 | end))
20 | end,
21 | }
22 |
--------------------------------------------------------------------------------
/lsp/fstar.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/FStarLang/FStar
4 | ---
5 | --- LSP support is included in FStar. Make sure `fstar.exe` is in your PATH.
6 | return {
7 | cmd = { 'fstar.exe', '--lsp' },
8 | filetypes = { 'fstar' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/futhark_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/diku-dk/futhark
4 | ---
5 | --- Futhark Language Server
6 | ---
7 | --- This language server comes with the futhark compiler and is run with the command
8 | --- ```
9 | --- futhark lsp
10 | --- ```
11 | return {
12 | cmd = { 'futhark', 'lsp' },
13 | filetypes = { 'futhark', 'fut' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/gdscript.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/godotengine/godot
4 | ---
5 | --- Language server for GDScript, used by Godot Engine.
6 |
7 | local port = os.getenv 'GDScript_Port' or '6005'
8 | local cmd = vim.lsp.rpc.connect('127.0.0.1', tonumber(port))
9 |
10 | return {
11 | cmd = cmd,
12 | filetypes = { 'gd', 'gdscript', 'gdscript3' },
13 | root_markers = { 'project.godot', '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/gdshader_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/godofavacyn/gdshader-lsp
4 | ---
5 | --- A language server for the Godot Shading language.
6 | return {
7 | cmd = { 'gdshader-lsp', '--stdio' },
8 | filetypes = { 'gdshader', 'gdshaderinc' },
9 | root_markers = { 'project.godot' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/ghcide.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/digital-asset/ghcide
4 | ---
5 | --- A library for building Haskell IDE tooling.
6 | --- "ghcide" isn't for end users now. Use "haskell-language-server" instead of "ghcide".
7 | return {
8 | cmd = { 'ghcide', '--lsp' },
9 | filetypes = { 'haskell', 'lhaskell' },
10 | root_markers = { 'stack.yaml', 'hie-bios', 'BUILD.bazel', 'cabal.config', 'package.yaml' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/ghdl_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/ghdl/ghdl-language-server
4 | ---
5 | --- A language server for VHDL, using ghdl as its backend.
6 | ---
7 | --- `ghdl-ls` is part of pyghdl, for installation instructions see
8 | --- [the upstream README](https://github.com/ghdl/ghdl/tree/master/pyGHDL/lsp).
9 | return {
10 | cmd = { 'ghdl-ls' },
11 | filetypes = { 'vhdl' },
12 | root_markers = { 'hdl-prj.json', '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/ginko_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | ---`ginko_ls` is meant to be a feature-complete language server for device-trees.
4 | --- Language servers can be used in many editors, such as Visual Studio Code, Emacs
5 | --- or Vim
6 | ---
7 | --- Install `ginko_ls` from https://github.com/Schottkyc137/ginko and add it to path
8 | ---
9 | --- `ginko_ls` doesn't require any configuration.
10 | return {
11 | cmd = { 'ginko_ls' },
12 | filetypes = { 'dts' },
13 | root_markers = { '.git' },
14 | settings = {},
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/gleam.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/gleam-lang/gleam
4 | ---
5 | --- A language server for Gleam Programming Language.
6 | ---
7 | --- It comes with the Gleam compiler, for installation see: [Installing Gleam](https://gleam.run/getting-started/installing/)
8 | return {
9 | cmd = { 'gleam', 'lsp' },
10 | filetypes = { 'gleam' },
11 | root_markers = { 'gleam.toml', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/glsl_analyzer.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nolanderc/glsl_analyzer
4 | ---
5 | --- Language server for GLSL
6 | return {
7 | cmd = { 'glsl_analyzer' },
8 | filetypes = { 'glsl', 'vert', 'tesc', 'tese', 'frag', 'geom', 'comp' },
9 | root_markers = { '.git' },
10 | capabilities = {},
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/glslls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/svenstaro/glsl-language-server
4 | ---
5 | --- Language server implementation for GLSL
6 | ---
7 | --- `glslls` can be compiled and installed manually, or, if your distribution has access to the AUR,
8 | --- via the `glsl-language-server` AUR package
9 | return {
10 | cmd = { 'glslls', '--stdin' },
11 | filetypes = { 'glsl', 'vert', 'tesc', 'tese', 'frag', 'geom', 'comp' },
12 | root_markers = { '.git' },
13 | capabilities = {
14 | textDocument = {
15 | completion = {
16 | editsNearCursor = true,
17 | },
18 | },
19 | offsetEncoding = { 'utf-8', 'utf-16' },
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lsp/gnls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/microsoft/gnls
4 | ---
5 | --- Microsoft's language server for GN build files.
6 | ---
7 | --- Assuming there is a `gnls` script somewhere in your `$PATH`, containing
8 | --- for example:
9 | ---
10 | --- ```shell
11 | --- GNLS_SRC_DIR=
12 | ---
13 | --- exec node ${GNLS_SRC_DIR}/build/server.js $@
14 | --- ```
15 | return {
16 | cmd = { 'gnls', '--stdio' },
17 | filetypes = { 'gn' },
18 | root_markers = { '.gn', '.git' },
19 | }
20 |
--------------------------------------------------------------------------------
/lsp/hdl_checker.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/suoto/hdl_checker
4 | --- Language server for hdl-checker.
5 | --- Install using: `pip install hdl-checker --upgrade`
6 | return {
7 | cmd = { 'hdl_checker', '--lsp' },
8 | filetypes = { 'vhdl', 'verilog', 'systemverilog' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/hhvm.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- Language server for programs written in Hack
4 | --- https://hhvm.com/
5 | --- https://github.com/facebook/hhvm
6 | --- See below for how to setup HHVM & typechecker:
7 | --- https://docs.hhvm.com/hhvm/getting-started/getting-started
8 | return {
9 | cmd = { 'hh_client', 'lsp' },
10 | filetypes = { 'php', 'hack' },
11 | root_markers = { '.hhconfig' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/hlasm.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- `hlasm_language_server` is a language server for the High Level Assembler language used on IBM SystemZ mainframes.
4 | ---
5 | --- 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).
6 | return {
7 | cmd = { 'hlasm_language_server' },
8 | filetypes = { 'hlasm' },
9 | root_markers = { '.hlasmplugin' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/hoon_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/urbit/hoon-language-server
4 | ---
5 | --- A language server for Hoon.
6 | ---
7 | --- The language server can be installed via `npm install -g @hoon-language-server`
8 | ---
9 | --- Start a fake ~zod with `urbit -F zod`.
10 | --- Start the language server at the Urbit Dojo prompt with: `|start %language-server`
11 | return {
12 | cmd = { 'hoon-language-server' },
13 | filetypes = { 'hoon' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/hydra_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/Retsediv/hydra-lsp
4 | ---
5 | --- LSP for Hydra Python package config files.
6 | return {
7 | cmd = { 'hydra-lsp' },
8 | filetypes = { 'yaml' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/hyprls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/hyprland-community/hyprls
4 | ---
5 | --- `hyprls` can be installed via `go`:
6 | --- ```sh
7 | --- go install github.com/ewen-lbh/hyprls/cmd/hyprls@latest
8 | --- ```
9 | return {
10 | cmd = { 'hyprls', '--stdio' },
11 | filetypes = { 'hyprlang' },
12 | root_markers = { '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/janet_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/CFiggers/janet-lsp
4 | ---
5 | --- A Language Server Protocol implementation for Janet.
6 | return {
7 | cmd = {
8 | 'janet-lsp',
9 | '--stdio',
10 | },
11 | filetypes = { 'janet' },
12 | root_markers = { 'project.janet', '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/java_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/georgewfraser/java-language-server
4 | ---
5 | --- Java language server
6 | ---
7 | --- Point `cmd` to `lang_server_linux.sh` or the equivalent script for macOS/Windows provided by java-language-server
8 | return {
9 | filetypes = { 'java' },
10 | root_markers = { 'build.gradle', 'build.gradle.kts', 'pom.xml', '.git' },
11 | settings = {},
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/jedi_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/pappasam/jedi-language-server
4 | ---
5 | --- `jedi-language-server`, a language server for Python, built on top of jedi
6 | return {
7 | cmd = { 'jedi-language-server' },
8 | filetypes = { 'python' },
9 | root_markers = {
10 | 'pyproject.toml',
11 | 'setup.py',
12 | 'setup.cfg',
13 | 'requirements.txt',
14 | 'Pipfile',
15 | '.git',
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/jqls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/wader/jq-lsp
4 | --- Language server for jq, written using Go.
5 | --- You can install the server easily using go install:
6 | --- ```sh
7 | --- # install directly
8 | --- go install github.com/wader/jq-lsp@master
9 | --- # copy binary to $PATH
10 | --- cp $(go env GOPATH)/bin/jq-lsp /usr/local/bin
11 | ---
12 | --- ```
13 | --- Note: To activate properly nvim needs to know the jq filetype.
14 | --- You can add it via:
15 | --- ```lua
16 | --- vim.cmd([[au BufRead,BufNewFile *.jq setfiletype jq]])
17 | --- ```
18 | return {
19 | cmd = { 'jq-lsp' },
20 | filetypes = { 'jq' },
21 | root_markers = { '.git' },
22 | }
23 |
--------------------------------------------------------------------------------
/lsp/jsonnet_ls.lua:
--------------------------------------------------------------------------------
1 | --- @brief
2 | ---
3 | --- https://github.com/grafana/jsonnet-language-server
4 | ---
5 | --- A Language Server Protocol (LSP) server for Jsonnet.
6 | ---
7 | --- The language server can be installed with `go`:
8 | --- ```sh
9 | --- go install github.com/grafana/jsonnet-language-server@latest
10 | --- ```
11 | return {
12 | cmd = { 'jsonnet-language-server' },
13 | filetypes = {
14 | 'jsonnet',
15 | 'libsonnet',
16 | },
17 | root_markers = { 'jsonnetfile.json', '.git' },
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/just.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/terror/just-lsp
4 | ---
5 | --- `just-lsp` is an LSP for just built on top of the tree-sitter-just parser.
6 | return {
7 | cmd = { 'just-lsp' },
8 | filetypes = { 'just' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/kcl.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/kcl-lang/kcl.nvim
4 | ---
5 | --- Language server for the KCL configuration and policy language.
6 | ---
7 | return {
8 | cmd = { 'kcl-language-server' },
9 | filetypes = { 'kcl' },
10 | root_markers = { '.git' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/koka.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://koka-lang.github.io/koka/doc/index.html
4 | --- Koka is a functional programming language with effect types and handlers.
5 | return {
6 | cmd = { 'koka', '--language-server', '--lsstdio' },
7 | filetypes = { 'koka' },
8 | root_markers = { '.git' },
9 | }
10 |
--------------------------------------------------------------------------------
/lsp/kulala_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/mistweaverco/kulala-ls
4 | ---
5 | --- A minimal language server for HTTP syntax.
6 | return {
7 | cmd = { 'kulala-ls', '--stdio' },
8 | filetypes = { 'http' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/laravel_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/laravel-ls/laravel-ls
4 | ---
5 | --- `laravel-ls`, language server for laravel
6 | ---
7 | --- The default `cmd` assumes that the `laravel-ls` binary can be found in `$PATH`.
8 |
9 | return {
10 | cmd = { 'laravel-ls' },
11 | filetypes = { 'php', 'blade' },
12 | root_markers = { 'artisan' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/lelwel_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/0x2a-42/lelwel
4 | ---
5 | --- Language server for lelwel grammars.
6 | ---
7 | --- You can install `lelwel-ls` via cargo:
8 | --- ```sh
9 | --- cargo install --features="lsp" lelwel
10 | --- ```
11 | return {
12 | cmd = { 'lelwel-ls' },
13 | filetypes = { 'llw' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/lemminx.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/eclipse/lemminx
4 | ---
5 | --- The 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.
6 | ---
7 | --- NOTE 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.
8 | return {
9 | cmd = { 'lemminx' },
10 | filetypes = { 'xml', 'xsd', 'xsl', 'xslt', 'svg' },
11 | root_markers = { '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/lexical.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/lexical-lsp/lexical
4 | ---
5 | --- Lexical is a next-generation language server for the Elixir programming language.
6 | ---
7 | --- Follow the [Detailed Installation Instructions](https://github.com/lexical-lsp/lexical/blob/main/pages/installation.md)
8 | ---
9 | --- **By default, `lexical` doesn't have a `cmd` set.**
10 | --- This is because nvim-lspconfig does not make assumptions about your path.
11 | return {
12 | filetypes = { 'elixir', 'eelixir', 'heex', 'surface' },
13 | root_markers = { 'mix.exs', '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/luau_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/JohnnyMorganz/luau-lsp
4 | ---
5 | --- Language server for the [Luau](https://luau-lang.org/) language.
6 | ---
7 | --- `luau-lsp` can be installed by downloading one of the release assets available at https://github.com/JohnnyMorganz/luau-lsp.
8 | ---
9 | --- You might also have to set up automatic filetype detection for Luau files, for example like so:
10 | ---
11 | --- ```vim
12 | --- autocmd BufRead,BufNewFile *.luau setf luau
13 | --- ```
14 | return {
15 | cmd = { 'luau-lsp', 'lsp' },
16 | filetypes = { 'luau' },
17 | root_markers = { '.git' },
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/m68k.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/grahambates/m68k-lsp
4 | ---
5 | --- Language server for Motorola 68000 family assembly
6 | ---
7 | --- `m68k-lsp-server` can be installed via `npm`:
8 | ---
9 | --- ```sh
10 | --- npm install -g m68k-lsp-server
11 | --- ```
12 | ---
13 | --- Ensure you are using the 68k asm syntax variant in Neovim.
14 | ---
15 | --- ```lua
16 | --- vim.g.asmsyntax = 'asm68k'
17 | --- ```
18 | return {
19 | cmd = { 'm68k-lsp-server', '--stdio' },
20 | filetypes = { 'asm68k' },
21 | root_markers = { 'Makefile', '.git' },
22 | }
23 |
--------------------------------------------------------------------------------
/lsp/marko-js.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/marko-js/language-server
4 | ---
5 | --- Using the Language Server Protocol to improve Marko's developer experience.
6 | ---
7 | --- Can be installed via npm:
8 | --- ```
9 | --- npm i -g @marko/language-server
10 | --- ```
11 | return {
12 | cmd = { 'marko-language-server', '--stdio' },
13 | filetypes = { 'marko' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/marksman.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/artempyanykh/marksman
4 | ---
5 | --- Marksman is a Markdown LSP server providing completion, cross-references, diagnostics, and more.
6 | ---
7 | --- Marksman works on MacOS, Linux, and Windows and is distributed as a self-contained binary for each OS.
8 | ---
9 | --- Pre-built binaries can be downloaded from https://github.com/artempyanykh/marksman/releases
10 |
11 | local bin_name = 'marksman'
12 | local cmd = { bin_name, 'server' }
13 |
14 | return {
15 | cmd = cmd,
16 | filetypes = { 'markdown', 'markdown.mdx' },
17 | root_markers = { '.marksman.toml', '.git' },
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/matlab_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/mathworks/MATLAB-language-server
4 | ---
5 | --- MATLAB® language server implements the Microsoft® Language Server Protocol for the MATLAB language.
6 | return {
7 | cmd = { 'matlab-language-server', '--stdio' },
8 | filetypes = { 'matlab' },
9 | root_dir = function(bufnr, on_dir)
10 | local root_dir = vim.fs.root(bufnr, '.git')
11 | on_dir(root_dir or vim.fn.getcwd())
12 | end,
13 | settings = {
14 | MATLAB = {
15 | indexWorkspace = true,
16 | installPath = '',
17 | matlabConnectionTiming = 'onStart',
18 | telemetry = true,
19 | },
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lsp/millet.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/azdavis/millet
4 | ---
5 | --- Millet, a language server for Standard ML
6 | ---
7 | --- To use with nvim:
8 | ---
9 | --- 1. Install a Rust toolchain: https://rustup.rs
10 | --- 2. Clone the repo
11 | --- 3. Run `cargo build --release --bin lang-srv`
12 | --- 4. Move `target/release/lang-srv` to somewhere on your $PATH as `millet`
13 | return {
14 | cmd = { 'millet' },
15 | filetypes = { 'sml' },
16 | root_markers = { 'millet.toml' },
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/mint.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://www.mint-lang.com
4 | ---
5 | --- Install Mint using the [instructions](https://www.mint-lang.com/install).
6 | --- The language server is included since version 0.12.0.
7 | return {
8 | cmd = { 'mint', 'ls' },
9 | filetypes = { 'mint' },
10 | root_markers = { 'mint.json', '.git' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/mlir_lsp_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://mlir.llvm.org/docs/Tools/MLIRLSP/#mlir-lsp-language-server--mlir-lsp-server=
4 | ---
5 | --- The Language Server for the LLVM MLIR language
6 | ---
7 | --- `mlir-lsp-server` can be installed at the llvm-project repository (https://github.com/llvm/llvm-project)
8 | return {
9 | cmd = { 'mlir-lsp-server' },
10 | filetypes = { 'mlir' },
11 | root_markers = { '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/mlir_pdll_lsp_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://mlir.llvm.org/docs/Tools/MLIRLSP/#pdll-lsp-language-server--mlir-pdll-lsp-server
4 | ---
5 | --- The Language Server for the LLVM PDLL language
6 | ---
7 | --- `mlir-pdll-lsp-server` can be installed at the llvm-project repository (https://github.com/llvm/llvm-project)
8 | return {
9 | cmd = { 'mlir-pdll-lsp-server' },
10 | filetypes = { 'pdll' },
11 | root_markers = { 'pdll_compile_commands.yml', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/mm0_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/digama0/mm0
4 | ---
5 | --- Language Server for the metamath-zero theorem prover.
6 | ---
7 | --- Requires [mm0-rs](https://github.com/digama0/mm0/tree/master/mm0-rs) to be installed
8 | --- and available on the `PATH`.
9 | return {
10 | cmd = { 'mm0-rs', 'server' },
11 | root_markers = { '.git' },
12 | filetypes = { 'metamath-zero' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/mojo.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/modularml/mojo
4 | ---
5 | --- `mojo-lsp-server` can be installed [via Modular](https://developer.modular.com/download)
6 | ---
7 | --- Mojo 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.
8 | return {
9 | cmd = { 'mojo-lsp-server' },
10 | filetypes = { 'mojo' },
11 | root_markers = { '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/motoko_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/dfinity/vscode-motoko
4 | ---
5 | --- Language server for the Motoko programming language.
6 | return {
7 | cmd = { 'motoko-lsp', '--stdio' },
8 | filetypes = { 'motoko' },
9 | root_markers = { 'dfx.json', '.git' },
10 | init_options = {
11 | formatter = 'auto',
12 | },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/move_analyzer.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/move-language/move/tree/main/language/move-analyzer
4 | ---
5 | --- Language server for Move
6 | ---
7 | --- The `move-analyzer` can be installed by running:
8 | ---
9 | --- ```
10 | --- cargo install --git https://github.com/move-language/move move-analyzer
11 | --- ```
12 | ---
13 | --- See [`move-analyzer`'s doc](https://github.com/move-language/move/blob/1b258a06e3c7d2bc9174578aac92cca3ac19de71/language/move-analyzer/editors/code/README.md#how-to-install) for details.
14 | return {
15 | cmd = { 'move-analyzer' },
16 | filetypes = { 'move' },
17 | root_markers = { 'Move.toml' },
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/mutt_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/neomutt/mutt-language-server
4 | ---
5 | --- A language server for (neo)mutt's muttrc. It can be installed via pip.
6 | ---
7 | --- ```sh
8 | --- pip install mutt-language-server
9 | --- ```
10 | return {
11 | cmd = { 'mutt-language-server' },
12 | filetypes = { 'muttrc', 'neomuttrc' },
13 | root_markers = { '.git' },
14 | settings = {},
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/nextls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/elixir-tools/next-ls
4 | ---
5 | --- **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.**
6 | return {
7 | filetypes = { 'elixir', 'eelixir', 'heex', 'surface' },
8 | root_markers = { 'mix.exs', '.git' },
9 | }
10 |
--------------------------------------------------------------------------------
/lsp/nginx_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://pypi.org/project/nginx-language-server/
4 | ---
5 | --- `nginx-language-server` can be installed via pip:
6 | ---
7 | --- ```sh
8 | --- pip install -U nginx-language-server
9 | --- ```
10 | return {
11 | cmd = { 'nginx-language-server' },
12 | filetypes = { 'nginx' },
13 | root_markers = { 'nginx.conf', '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/nil_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/oxalica/nil
4 | ---
5 | --- A new language server for Nix Expression Language.
6 | ---
7 | --- If you are using Nix with Flakes support, run `nix profile install github:oxalica/nil` to install.
8 | --- Check the repository README for more information.
9 | ---
10 | --- _See an example config at https://github.com/oxalica/nil/blob/main/dev/nvim-lsp.nix._
11 | return {
12 | cmd = { 'nil' },
13 | filetypes = { 'nix' },
14 | root_markers = { 'flake.nix', '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/nim_langserver.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nim-lang/langserver
4 | ---
5 | ---
6 | --- `nim-langserver` can be installed via the `nimble` package manager:
7 | --- ```sh
8 | --- nimble install nimlangserver
9 | --- ```
10 |
11 | local util = require 'lspconfig.util'
12 |
13 | return {
14 | cmd = { 'nimlangserver' },
15 | filetypes = { 'nim' },
16 | root_dir = function(bufnr, on_dir)
17 | local fname = vim.api.nvim_buf_get_name(bufnr)
18 | on_dir(
19 | util.root_pattern '*.nimble'(fname) or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
20 | )
21 | end,
22 | }
23 |
--------------------------------------------------------------------------------
/lsp/nimls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/PMunch/nimlsp
4 | ---
5 | --- `nimlsp` can be installed via the `nimble` package manager:
6 | ---
7 | --- ```sh
8 | --- nimble install nimlsp
9 | --- ```
10 |
11 | local util = require 'lspconfig.util'
12 |
13 | return {
14 | cmd = { 'nimlsp' },
15 | filetypes = { 'nim' },
16 | root_dir = function(bufnr, on_dir)
17 | local fname = vim.api.nvim_buf_get_name(bufnr)
18 | on_dir(
19 | util.root_pattern '*.nimble'(fname) or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
20 | )
21 | end,
22 | }
23 |
--------------------------------------------------------------------------------
/lsp/nixd.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nix-community/nixd
4 | ---
5 | --- Nix language server, based on nix libraries.
6 | ---
7 | --- If you are using Nix with Flakes support, run `nix profile install github:nix-community/nixd` to install.
8 | --- Check the repository README for more information.
9 | return {
10 | cmd = { 'nixd' },
11 | filetypes = { 'nix' },
12 | root_markers = { 'flake.nix', 'git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/ntt.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nokia/ntt
4 | --- Installation instructions can be found [here](https://github.com/nokia/ntt#Install).
5 | --- Can be configured by passing a "settings" object to vim.lsp.config('ntt'):
6 | --- ```lua
7 | --- vim.lsp.config('ntt', {
8 | --- settings = {
9 | --- ntt = {
10 | --- }
11 | --- }
12 | --- })
13 | --- ```
14 |
15 | return {
16 | cmd = { 'ntt', 'langserver' },
17 | filetypes = { 'ttcn' },
18 | root_markers = { '.git' },
19 | }
20 |
--------------------------------------------------------------------------------
/lsp/nushell.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nushell/nushell
4 | ---
5 | --- Nushell built-in language server.
6 | return {
7 | cmd = { 'nu', '--lsp' },
8 | filetypes = { 'nu' },
9 | root_dir = function(bufnr, on_dir)
10 | on_dir(vim.fs.root(bufnr, { '.git' }) or vim.fs.dirname(vim.api.nvim_buf_get_name(bufnr)))
11 | end,
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/nxls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nrwl/nx-console/tree/master/apps/nxls
4 | ---
5 | --- nxls, a language server for Nx Workspaces
6 | ---
7 | --- `nxls` can be installed via `npm`:
8 | --- ```sh
9 | --- npm i -g nxls
10 | --- ```
11 | return {
12 | cmd = { 'nxls', '--stdio' },
13 | filetypes = { 'json', 'jsonc' },
14 | root_markers = { 'nx.json', '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/ocamlls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/ocaml-lsp/ocaml-language-server
4 | ---
5 | --- `ocaml-language-server` can be installed via `npm`
6 | --- ```sh
7 | --- npm install -g ocaml-language-server
8 | --- ```
9 |
10 | local util = require 'lspconfig.util'
11 |
12 | return {
13 | cmd = { 'ocaml-language-server', '--stdio' },
14 | filetypes = { 'ocaml', 'reason' },
15 | root_dir = function(bufnr, on_dir)
16 | local fname = vim.api.nvim_buf_get_name(bufnr)
17 | on_dir(util.root_pattern('*.opam', 'esy.json', 'package.json')(fname))
18 | end,
19 | }
20 |
--------------------------------------------------------------------------------
/lsp/ols.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/DanielGavin/ols
4 | ---
5 | --- `Odin Language Server`.
6 |
7 | local util = require 'lspconfig.util'
8 |
9 | return {
10 | cmd = { 'ols' },
11 | filetypes = { 'odin' },
12 | root_dir = function(bufnr, on_dir)
13 | local fname = vim.api.nvim_buf_get_name(bufnr)
14 | on_dir(util.root_pattern('ols.json', '.git', '*.odin')(fname))
15 | end,
16 | }
17 |
--------------------------------------------------------------------------------
/lsp/opencl_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/Galarius/opencl-language-server
4 | ---
5 | --- Build instructions can be found [here](https://github.com/Galarius/opencl-language-server/blob/main/_dev/build.md).
6 | ---
7 | --- Prebuilt binaries are available for Linux, macOS and Windows [here](https://github.com/Galarius/opencl-language-server/releases).
8 | return {
9 | cmd = { 'opencl-language-server' },
10 | filetypes = { 'opencl' },
11 | root_markers = { '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/openscad_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/Leathong/openscad-LSP
4 | ---
5 | --- A Language Server Protocol server for OpenSCAD
6 | ---
7 | --- You can build and install `openscad-lsp` binary with `cargo`:
8 | --- ```sh
9 | --- cargo install openscad-lsp
10 | --- ```
11 | return {
12 | cmd = { 'openscad-lsp', '--stdio' },
13 | filetypes = { 'openscad' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/pact_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/kadena-io/pact-lsp
4 | ---
5 | --- The Pact language server
6 | return {
7 | cmd = { 'pact-lsp' },
8 | filetypes = { 'pact' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/pbls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://git.sr.ht/~rrc/pbls
4 | ---
5 | --- Prerequisites: Ensure protoc is on your $PATH.
6 | ---
7 | --- `pbls` can be installed via `cargo install`:
8 | --- ```sh
9 | --- cargo install --git https://git.sr.ht/~rrc/pbls
10 | --- ```
11 | ---
12 | --- pbls is a Language Server for protobuf
13 | return {
14 | cmd = { 'pbls' },
15 | filetypes = { 'proto' },
16 | root_markers = { '.pbls.toml', '.git' },
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/perlpls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/FractalBoy/perl-language-server
4 | --- https://metacpan.org/pod/PLS
5 | ---
6 | --- `PLS`, another language server for Perl.
7 | ---
8 | --- To use the language server, ensure that you have PLS installed and that it is in your path
9 | return {
10 | cmd = { 'pls' },
11 | settings = {
12 | perl = {
13 | perlcritic = { enabled = false },
14 | syntax = { enabled = true },
15 | },
16 | },
17 | filetypes = { 'perl' },
18 | root_markers = { '.git' },
19 | }
20 |
--------------------------------------------------------------------------------
/lsp/pest_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/pest-parser/pest-ide-tools
4 | ---
5 | --- Language server for pest grammars.
6 | return {
7 | cmd = { 'pest-language-server' },
8 | filetypes = { 'pest' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/phpactor.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/phpactor/phpactor
4 | ---
5 | --- Installation: https://phpactor.readthedocs.io/en/master/usage/standalone.html#global-installation
6 |
7 | return {
8 | cmd = { 'phpactor', 'language-server' },
9 | filetypes = { 'php' },
10 | root_dir = function(bufnr, on_dir)
11 | local fname = vim.api.nvim_buf_get_name(bufnr)
12 | local cwd = assert(vim.uv.cwd())
13 | local root = vim.fs.root(fname, { 'composer.json', '.git', '.phpactor.json', '.phpactor.yml' })
14 |
15 | -- prefer cwd if root is a descendant
16 | on_dir(root and vim.fs.relpath(cwd, root) and cwd)
17 | end,
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/pico8_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/japhib/pico8-ls
4 | ---
5 | --- Full language support for the PICO-8 dialect of Lua.
6 |
7 | local util = require 'lspconfig.util'
8 |
9 | return {
10 | cmd = { 'pico8-ls', '--stdio' },
11 | filetypes = { 'p8' },
12 | root_dir = function(bufnr, on_dir)
13 | local fname = vim.api.nvim_buf_get_name(bufnr)
14 | on_dir(util.root_pattern('*.p8')(fname))
15 | end,
16 | settings = {},
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/pkgbuild_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/Freed-Wu/pkgbuild-language-server
4 | ---
5 | --- Language server for ArchLinux/Windows Msys2's PKGBUILD.
6 | return {
7 | cmd = { 'pkgbuild-language-server' },
8 | filetypes = { 'PKGBUILD' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/please.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/thought-machine/please
4 | ---
5 | --- High-performance extensible build system for reproducible multi-language builds.
6 | ---
7 | --- The `plz` binary will automatically install the LSP for you on first run
8 | return {
9 | cmd = { 'plz', 'tool', 'lps' },
10 | filetypes = { 'bzl' },
11 | root_markers = { '.plzconfig' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/pli.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- `pli_language_server` is a language server for the PL/I language used on IBM SystemZ mainframes.
4 | ---
5 | --- To learn how to configure the PL/I language server, see the [PL/I Language Support documentation](https://github.com/zowe/zowe-pli-language-support).
6 | return {
7 | cmd = { 'pli_language_server' },
8 | filetypes = { 'pli' },
9 | root_markers = { '.pliplugin' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/poryscript_pls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/huderlem/poryscript-pls
4 | ---
5 | --- Language server for poryscript (a high level scripting language for GBA-era Pokémon decompilation projects)
6 | return {
7 | cmd = { 'poryscript-pls' },
8 | filetypes = { 'pory' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/postgres_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://pgtools.dev
4 | ---
5 | --- A collection of language tools and a Language Server Protocol (LSP) implementation for Postgres, focusing on developer experience and reliable SQL tooling.
6 | return {
7 | cmd = { 'postgrestools', 'lsp-proxy' },
8 | filetypes = {
9 | 'sql',
10 | },
11 | root_markers = { 'postgrestools.jsonc' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/prismals.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- Language Server for the Prisma JavaScript and TypeScript ORM
4 | ---
5 | --- `@prisma/language-server` can be installed via npm
6 | --- ```sh
7 | --- npm install -g @prisma/language-server
8 | --- ```
9 | return {
10 | cmd = { 'prisma-language-server', '--stdio' },
11 | filetypes = { 'prisma' },
12 | settings = {
13 | prisma = {
14 | prismaFmtBinPath = '',
15 | },
16 | },
17 | root_markers = { '.git', 'package.json' },
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/prolog_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/jamesnvc/lsp_server
4 | ---
5 | --- Language Server Protocol server for SWI-Prolog
6 | return {
7 | cmd = {
8 | 'swipl',
9 | '-g',
10 | 'use_module(library(lsp_server)).',
11 | '-g',
12 | 'lsp_server:main',
13 | '-t',
14 | 'halt',
15 | '--',
16 | 'stdio',
17 | },
18 | filetypes = { 'prolog' },
19 | root_markers = { 'pack.pl' },
20 | }
21 |
--------------------------------------------------------------------------------
/lsp/prosemd_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/kitten/prosemd-lsp
4 | ---
5 | --- An experimental LSP for Markdown.
6 | ---
7 | --- Please see the manual installation instructions: https://github.com/kitten/prosemd-lsp#manual-installation
8 | return {
9 | cmd = { 'prosemd-lsp', '--stdio' },
10 | filetypes = { 'markdown' },
11 | root_markers = { '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/protols.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/coder3101/protols
4 | ---
5 | --- `protols` can be installed via `cargo`:
6 | --- ```sh
7 | --- cargo install protols
8 | --- ```
9 | ---
10 | --- A Language Server for proto3 files. It uses tree-sitter and runs in single file mode.
11 | return {
12 | cmd = { 'protols' },
13 | filetypes = { 'proto' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/psalm.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/vimeo/psalm
4 | ---
5 | --- Can be installed with composer.
6 | --- ```sh
7 | --- composer global require vimeo/psalm
8 | --- ```
9 | return {
10 | cmd = { 'psalm', '--language-server' },
11 | filetypes = { 'php' },
12 | root_markers = { 'psalm.xml', 'psalm.xml.dist' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/pug.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/opa-oz/pug-lsp
4 | ---
5 | --- An implementation of the Language Protocol Server for [Pug.js](http://pugjs.org)
6 | ---
7 | --- PugLSP 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)
8 | return {
9 | cmd = { 'pug-lsp' },
10 | filetypes = { 'pug' },
11 | root_markers = { 'package.json' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/purescriptls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nwolverson/purescript-language-server
4 | ---
5 | --- The `purescript-language-server` can be added to your project and `$PATH` via
6 | ---
7 | --- * JavaScript package manager such as npm, pnpm, Yarn, et al.
8 | --- * Nix under the `nodePackages` and `nodePackages_latest` package sets
9 | return {
10 | cmd = { 'purescript-language-server', '--stdio' },
11 | filetypes = { 'purescript' },
12 | root_markers = { 'bower.json', 'flake.nix', 'psc-package.json', 'shell.nix', 'spago.dhall', 'spago.yaml' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/pyre.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://pyre-check.org/
4 | ---
5 | --- `pyre` a static type checker for Python 3.
6 | ---
7 | --- `pyre` offers an extremely limited featureset. It currently only supports diagnostics,
8 | --- which are triggered on save.
9 | ---
10 | --- Do not report issues for missing features in `pyre` to `lspconfig`.
11 | return {
12 | cmd = { 'pyre', 'persistent' },
13 | filetypes = { 'python' },
14 | root_markers = { '.pyre_configuration' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/qmlls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://doc.qt.io/qt-6/qtqml-tooling-qmlls.html
4 | ---
5 | --- > QML Language Server is a tool shipped with Qt that helps you write code in your favorite (LSP-supporting) editor.
6 | ---
7 | --- Source in the [QtDeclarative repository](https://code.qt.io/cgit/qt/qtdeclarative.git/)
8 | return {
9 | cmd = { 'qmlls' },
10 | filetypes = { 'qml', 'qmljs' },
11 | root_markers = { '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/quick_lint_js.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://quick-lint-js.com/
4 | ---
5 | --- quick-lint-js finds bugs in JavaScript programs.
6 | ---
7 | --- See installation [instructions](https://quick-lint-js.com/install/)
8 | return {
9 | cmd = { 'quick-lint-js', '--lsp-server' },
10 | filetypes = { 'javascript', 'typescript' },
11 | root_markers = { 'package.json', 'jsconfig.json', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/r_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- [languageserver](https://github.com/REditorSupport/languageserver) is an
4 | --- implementation of the Microsoft's Language Server Protocol for the R
5 | --- language.
6 | ---
7 | --- It is released on CRAN and can be easily installed by
8 | ---
9 | --- ```r
10 | --- install.packages("languageserver")
11 | --- ```
12 | return {
13 | cmd = { 'R', '--no-echo', '-e', 'languageserver::run()' },
14 | filetypes = { 'r', 'rmd', 'quarto' },
15 | root_dir = function(bufnr, on_dir)
16 | on_dir(vim.fs.root(bufnr, '.git') or vim.uv.os_homedir())
17 | end,
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/racket_langserver.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- [https://github.com/jeapostrophe/racket-langserver](https://github.com/jeapostrophe/racket-langserver)
4 | ---
5 | --- The Racket language server. This project seeks to use
6 | --- [DrRacket](https://github.com/racket/drracket)'s public API to provide
7 | --- functionality that mimics DrRacket's code tools as closely as possible.
8 | ---
9 | --- Install via `raco`: `raco pkg install racket-langserver`
10 | return {
11 | cmd = { 'racket', '--lib', 'racket-langserver' },
12 | filetypes = { 'racket', 'scheme' },
13 | root_markers = { '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/reason_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- Reason language server
4 | ---
5 | --- You can install reason language server from [reason-language-server](https://github.com/jaredly/reason-language-server) repository.
6 | return {
7 | cmd = { 'reason-language-server' },
8 | filetypes = { 'reason' },
9 | root_markers = { 'bsconfig.json', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/regal.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/StyraInc/regal
4 | ---
5 | --- A linter for Rego, with support for running as an LSP server.
6 | ---
7 | --- `regal` can be installed by running:
8 | --- ```sh
9 | --- go install github.com/StyraInc/regal@latest
10 | --- ```
11 |
12 | local util = require 'lspconfig.util'
13 |
14 | return {
15 | cmd = { 'regal', 'language-server' },
16 | filetypes = { 'rego' },
17 | root_dir = function(bufnr, on_dir)
18 | local fname = vim.api.nvim_buf_get_name(bufnr)
19 | on_dir(util.root_pattern '*.rego'(fname) or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]))
20 | end,
21 | }
22 |
--------------------------------------------------------------------------------
/lsp/regols.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/kitagry/regols
4 | ---
5 | --- OPA Rego language server.
6 | ---
7 | --- `regols` can be installed by running:
8 | --- ```sh
9 | --- go install github.com/kitagry/regols@latest
10 | --- ```
11 |
12 | local util = require 'lspconfig.util'
13 |
14 | return {
15 | cmd = { 'regols' },
16 | filetypes = { 'rego' },
17 | root_dir = function(bufnr, on_dir)
18 | local fname = vim.api.nvim_buf_get_name(bufnr)
19 | on_dir(util.root_pattern '*.rego'(fname) or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]))
20 | end,
21 | }
22 |
--------------------------------------------------------------------------------
/lsp/rnix.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nix-community/rnix-lsp
4 | ---
5 | --- A language server for Nix providing basic completion and formatting via nixpkgs-fmt.
6 | ---
7 | --- To install manually, run `cargo install rnix-lsp`. If you are using nix, rnix-lsp is in nixpkgs.
8 | ---
9 | --- This server accepts configuration via the `settings` key.
10 | return {
11 | cmd = { 'rnix-lsp' },
12 | filetypes = { 'nix' },
13 | root_dir = function(bufnr, on_dir)
14 | on_dir(vim.fs.root(bufnr, '.git') or vim.uv.os_homedir())
15 | end,
16 | settings = {},
17 | init_options = {},
18 | }
19 |
--------------------------------------------------------------------------------
/lsp/robotcode.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://robotcode.io
4 | ---
5 | --- RobotCode - Language Server Protocol implementation for Robot Framework.
6 | return {
7 | cmd = { 'robotcode', 'language-server' },
8 | filetypes = { 'robot', 'resource' },
9 | root_markers = { 'robot.toml', 'pyproject.toml', 'Pipfile', '.git' },
10 | get_language_id = function(_, _)
11 | return 'robotframework'
12 | end,
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/robotframework_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/robocorp/robotframework-lsp
4 | ---
5 | --- Language Server Protocol implementation for Robot Framework.
6 | return {
7 | cmd = { 'robotframework_ls' },
8 | filetypes = { 'robot' },
9 | root_markers = { 'robotidy.toml', 'pyproject.toml', 'conda.yaml', 'robot.yaml', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/roc_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/roc-lang/roc/tree/main/crates/language_server#roc_language_server
4 | ---
5 | --- The built-in language server for the Roc programming language.
6 | --- [Installation](https://github.com/roc-lang/roc/tree/main/crates/language_server#installing)
7 | return {
8 | cmd = { 'roc_language_server' },
9 | filetypes = { 'roc' },
10 | root_markers = { '.git' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/rome.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://rome.tools
4 | ---
5 | --- Language server for the Rome Frontend Toolchain.
6 | ---
7 | --- (Unmaintained, use [Biome](https://biomejs.dev/blog/annoucing-biome) instead.)
8 | ---
9 | --- ```sh
10 | --- npm install [-g] rome
11 | --- ```
12 | return {
13 | cmd = { 'rome', 'lsp-proxy' },
14 | filetypes = {
15 | 'javascript',
16 | 'javascriptreact',
17 | 'json',
18 | 'typescript',
19 | 'typescript.tsx',
20 | 'typescriptreact',
21 | },
22 | root_markers = { 'package.json', 'node_modules', '.git' },
23 | }
24 |
--------------------------------------------------------------------------------
/lsp/rpmspec.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/dcermak/rpm-spec-language-server
4 | ---
5 | --- Language server protocol (LSP) support for RPM Spec files.
6 | ---
7 | --- `rpm-spec-language-server` can be installed by running,
8 | ---
9 | --- ```sh
10 | --- pip install rpm-spec-language-server
11 | --- ```
12 | return {
13 | cmd = { 'rpm_lsp_server', '--stdio' },
14 | filetypes = { 'spec' },
15 | root_markers = { '.git' },
16 | settings = {},
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/rubocop.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/rubocop/rubocop
4 | return {
5 | cmd = { 'rubocop', '--lsp' },
6 | filetypes = { 'ruby' },
7 | root_markers = { 'Gemfile', '.git' },
8 | }
9 |
--------------------------------------------------------------------------------
/lsp/ruby_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://shopify.github.io/ruby-lsp/
4 | ---
5 | --- This gem is an implementation of the language server protocol specification for
6 | --- Ruby, used to improve editor features.
7 | ---
8 | --- Install the gem. There's no need to require it, since the server is used as a
9 | --- standalone executable.
10 | ---
11 | --- ```sh
12 | --- gem install ruby-lsp
13 | --- ```
14 | return {
15 | cmd = { 'ruby-lsp' },
16 | filetypes = { 'ruby', 'eruby' },
17 | root_markers = { 'Gemfile', '.git' },
18 | init_options = {
19 | formatter = 'auto',
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lsp/rune_languageserver.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://crates.io/crates/rune-languageserver
4 | ---
5 | --- A language server for the [Rune](https://rune-rs.github.io/) Language,
6 | --- an embeddable dynamic programming language for Rust
7 | return {
8 | cmd = { 'rune-languageserver' },
9 | filetypes = { 'rune' },
10 | root_markers = { '.git' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/salt_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- Language server for Salt configuration files.
4 | --- https://github.com/dcermak/salt-lsp
5 | ---
6 | --- The language server can be installed with `pip`:
7 | --- ```sh
8 | --- pip install salt-lsp
9 | --- ```
10 | return {
11 | cmd = { 'salt_lsp_server' },
12 | filetypes = { 'sls' },
13 | root_markers = { '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/scheme_langserver.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/ufo5260987423/scheme-langserver
4 | --- `scheme-langserver`, a language server protocol implementation for scheme.
5 | --- And for nvim user, please add .sls to scheme file extension list.
6 |
7 | local cmd = { 'scheme-langserver', '~/.scheme-langserver.log', 'enable', 'disable' }
8 |
9 | return {
10 | cmd = cmd,
11 | filetypes = { 'scheme' },
12 | root_markers = {
13 | 'Akku.manifest',
14 | '.git',
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lsp/scry.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/crystal-lang-tools/scry
4 | ---
5 | --- Crystal language server.
6 | return {
7 | cmd = { 'scry' },
8 | filetypes = { 'crystal' },
9 | root_markers = { 'shard.yml', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/selene3p_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/antonk52/lua-3p-language-servers
4 | ---
5 | --- 3rd party Language Server for Selene lua linter
6 | return {
7 | cmd = { 'selene-3p-language-server' },
8 | filetypes = { 'lua' },
9 | root_markers = { 'selene.toml' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/serve_d.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/Pure-D/serve-d
4 | ---
5 | --- Microsoft language server protocol implementation for D using workspace-d.
6 | --- Download a binary from https://github.com/Pure-D/serve-d/releases and put it in your $PATH.
7 | return {
8 | cmd = { 'serve-d' },
9 | filetypes = { 'd' },
10 | root_markers = { 'dub.json', 'dub.sdl', '.git' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/slint_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/slint-ui/slint
4 | --- `Slint`'s language server
5 | ---
6 | --- You can build and install `slint-lsp` binary with `cargo`:
7 | --- ```sh
8 | --- cargo install slint-lsp
9 | --- ```
10 | ---
11 | --- Vim does not have built-in syntax for the `slint` filetype at this time.
12 | ---
13 | --- This can be added via an autocmd:
14 | ---
15 | --- ```lua
16 | --- vim.cmd [[ autocmd BufRead,BufNewFile *.slint set filetype=slint ]]
17 | --- ```
18 | return {
19 | cmd = { 'slint-lsp' },
20 | filetypes = { 'slint' },
21 | root_markers = { '.git' },
22 | }
23 |
--------------------------------------------------------------------------------
/lsp/smithy_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/awslabs/smithy-language-server
4 | ---
5 | --- `Smithy Language Server`, A Language Server Protocol implementation for the Smithy IDL
6 |
7 | -- pass 0 as the first argument to use STDIN/STDOUT for communication
8 | local cmd = { 'smithy-language-server', '0' }
9 |
10 | return {
11 | cmd = cmd,
12 | filetypes = { 'smithy' },
13 | root_markers = { 'smithy-build.json', 'build.gradle', 'build.gradle.kts', '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/snakeskin_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://www.npmjs.com/package/@snakeskin/cli
4 | ---
5 | --- `snakeskin cli` can be installed via `npm`:
6 | --- ```sh
7 | --- npm install -g @snakeskin/cli
8 | --- ```
9 | return {
10 | cmd = { 'snakeskin-cli', 'lsp', '--stdio' },
11 | filetypes = { 'ss' },
12 | root_markers = { 'package.json' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/snyk_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/snyk/snyk-ls
4 | ---
5 | --- LSP for Snyk Open Source, Snyk Infrastructure as Code, and Snyk Code.
6 | return {
7 | cmd = { 'snyk-ls' },
8 | root_markers = { '.git', '.snyk' },
9 | filetypes = {
10 | 'go',
11 | 'gomod',
12 | 'javascript',
13 | 'typescript',
14 | 'json',
15 | 'python',
16 | 'requirements',
17 | 'helm',
18 | 'yaml',
19 | 'terraform',
20 | 'terraform-vars',
21 | },
22 | settings = {},
23 | -- Configuration from https://github.com/snyk/snyk-ls#configuration-1
24 | init_options = {
25 | activateSnykCode = 'true',
26 | },
27 | }
28 |
--------------------------------------------------------------------------------
/lsp/solang.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | ---A language server for Solidity
4 | ---
5 | --- See the [documentation](https://solang.readthedocs.io/en/latest/installing.html) for installation instructions.
6 | ---
7 | --- The language server only provides the following capabilities:
8 | --- * Syntax highlighting
9 | --- * Diagnostics
10 | --- * Hover
11 | ---
12 | --- There is currently no support for completion, goto definition, references, or other functionality.
13 | return {
14 | cmd = { 'solang', 'language-server', '--target', 'evm' },
15 | filetypes = { 'solidity' },
16 | root_markers = { '.git' },
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/solargraph.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://solargraph.org/
4 | ---
5 | --- solargraph, a language server for Ruby
6 | ---
7 | --- You can install solargraph via gem install.
8 | ---
9 | --- ```sh
10 | --- gem install --user-install solargraph
11 | --- ```
12 | return {
13 | cmd = { 'solargraph', 'stdio' },
14 | settings = {
15 | solargraph = {
16 | diagnostics = true,
17 | },
18 | },
19 | init_options = { formatting = true },
20 | filetypes = { 'ruby' },
21 | root_markers = { 'Gemfile', '.git' },
22 | }
23 |
--------------------------------------------------------------------------------
/lsp/solc.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://docs.soliditylang.org/en/latest/installing-solidity.html
4 | ---
5 | --- solc is the native language server for the Solidity language.
6 |
7 | local util = require 'lspconfig.util'
8 |
9 | return {
10 | cmd = { 'solc', '--lsp' },
11 | filetypes = { 'solidity' },
12 | root_dir = function(bufnr, on_dir)
13 | local fname = vim.api.nvim_buf_get_name(bufnr)
14 | on_dir(util.root_pattern('hardhat.config.*', '.git')(fname))
15 | end,
16 | }
17 |
--------------------------------------------------------------------------------
/lsp/sorbet.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://sorbet.org
4 | ---
5 | --- Sorbet is a fast, powerful type checker designed for Ruby.
6 | ---
7 | --- You can install Sorbet via gem install. You might also be interested in how to set
8 | --- Sorbet up for new projects: https://sorbet.org/docs/adopting.
9 | ---
10 | --- ```sh
11 | --- gem install sorbet
12 | --- ```
13 | return {
14 | cmd = { 'srb', 'tc', '--lsp' },
15 | filetypes = { 'ruby' },
16 | root_markers = { 'Gemfile', '.git' },
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/sqlls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/joe-re/sql-language-server
4 | ---
5 | --- This 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).
6 |
7 | return {
8 | cmd = { 'sql-language-server', 'up', '--method', 'stdio' },
9 | filetypes = { 'sql', 'mysql' },
10 | root_markers = { '.sqllsrc.json' },
11 | settings = {},
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/sqls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/sqls-server/sqls
4 | ---
5 | --- ```lua
6 | --- vim.lsp.config('sqls', {
7 | --- cmd = {"path/to/command", "-config", "path/to/config.yml"};
8 | --- ...
9 | --- })
10 | --- ```
11 | --- Sqls can be installed via `go install github.com/sqls-server/sqls@latest`. Instructions for compiling Sqls from the source can be found at [sqls-server/sqls](https://github.com/sqls-server/sqls).
12 | return {
13 | cmd = { 'sqls' },
14 | filetypes = { 'sql', 'mysql' },
15 | root_markers = { 'config.yml' },
16 | settings = {},
17 | }
18 |
--------------------------------------------------------------------------------
/lsp/sqruff.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/quarylabs/sqruff
4 | ---
5 | --- `sqruff` can be installed by following the instructions [here](https://github.com/quarylabs/sqruff?tab=readme-ov-file#installation)
6 | ---
7 | return {
8 | cmd = { 'sqruff', 'lsp' },
9 | filetypes = { 'sql' },
10 | root_markers = { '.sqruff', '.git' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/standardrb.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/testdouble/standard
4 | ---
5 | --- Ruby Style Guide, with linter & automatic code fixer.
6 | return {
7 | cmd = { 'standardrb', '--lsp' },
8 | filetypes = { 'ruby' },
9 | root_markers = { 'Gemfile', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/starlark_rust.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/facebookexperimental/starlark-rust/
4 | --- The LSP part of `starlark-rust` is not currently documented,
5 | --- but the implementation works well for linting.
6 | --- This gives valuable warnings for potential issues in the code,
7 | --- but does not support refactorings.
8 | ---
9 | --- It can be installed with cargo: https://crates.io/crates/starlark
10 | return {
11 | cmd = { 'starlark', '--lsp' },
12 | filetypes = { 'star', 'bzl', 'BUILD.bazel' },
13 | root_markers = { '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/starpls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/withered-magic/starpls
4 | ---
5 | --- `starpls` is an LSP implementation for Starlark. Installation instructions can be found in the project's README.
6 | return {
7 | cmd = { 'starpls' },
8 | filetypes = { 'bzl' },
9 | root_markers = { 'WORKSPACE', 'WORKSPACE.bazel', 'MODULE.bazel' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/statix.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nerdypepper/statix
4 | ---
5 | --- lints and suggestions for the nix programming language
6 | return {
7 | cmd = { 'statix', 'check', '--stdin' },
8 | filetypes = { 'nix' },
9 | root_markers = { 'flake.nix', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/steep.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/soutaro/steep
4 | ---
5 | --- `steep` is a static type checker for Ruby.
6 | ---
7 | --- You need `Steepfile` to make it work. Generate it with `steep init`.
8 | return {
9 | cmd = { 'steep', 'langserver' },
10 | filetypes = { 'ruby', 'eruby' },
11 | root_markers = { 'Steepfile', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/stimulus_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://www.npmjs.com/package/stimulus-language-server
4 | ---
5 | --- `stimulus-lsp` can be installed via `npm`:
6 | ---
7 | --- ```sh
8 | --- npm install -g stimulus-language-server
9 | --- ```
10 | ---
11 | --- or via `yarn`:
12 | ---
13 | --- ```sh
14 | --- yarn global add stimulus-language-server
15 | --- ```
16 | return {
17 | cmd = { 'stimulus-language-server', '--stdio' },
18 | filetypes = { 'html', 'ruby', 'eruby', 'blade', 'php' },
19 | root_markers = { 'Gemfile', '.git' },
20 | }
21 |
--------------------------------------------------------------------------------
/lsp/stylua3p_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/antonk52/lua-3p-language-servers
4 | ---
5 | --- 3rd party Language Server for Stylua lua formatter
6 | return {
7 | cmd = { 'stylua-3p-language-server' },
8 | filetypes = { 'lua' },
9 | root_markers = { '.stylua.toml', 'stylua.toml' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/svls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/dalance/svls
4 | ---
5 | --- Language server for verilog and SystemVerilog
6 | ---
7 | --- `svls` can be installed via `cargo`:
8 | --- ```sh
9 | --- cargo install svls
10 | --- ```
11 | return {
12 | cmd = { 'svls' },
13 | filetypes = { 'verilog', 'systemverilog' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/swift_mesonls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/JCWasmx86/Swift-MesonLSP
4 | ---
5 | --- Meson language server written in Swift
6 | return {
7 | cmd = { 'Swift-MesonLSP', '--lsp' },
8 | filetypes = { 'meson' },
9 | root_markers = { 'meson.build', 'meson_options.txt', 'meson.options', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/syntax_tree.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://ruby-syntax-tree.github.io/syntax_tree/
4 | ---
5 | --- A fast Ruby parser and formatter.
6 | ---
7 | --- Syntax Tree is a suite of tools built on top of the internal CRuby parser. It
8 | --- provides the ability to generate a syntax tree from source, as well as the
9 | --- tools necessary to inspect and manipulate that syntax tree. It can be used to
10 | --- build formatters, linters, language servers, and more.
11 | ---
12 | --- ```sh
13 | --- gem install syntax_tree
14 | --- ```
15 | return {
16 | cmd = { 'stree', 'lsp' },
17 | filetypes = { 'ruby' },
18 | root_markers = { '.streerc', 'Gemfile', '.git' },
19 | }
20 |
--------------------------------------------------------------------------------
/lsp/systemd_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/psacawa/systemd-language-server
4 | ---
5 | --- `systemd-language-server` can be installed via `pip`:
6 | --- ```sh
7 | --- pip install systemd-language-server
8 | --- ```
9 | ---
10 | --- Language Server for Systemd unit files
11 | return {
12 | cmd = { 'systemd-language-server' },
13 | filetypes = { 'systemd' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/tabby_ml.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://tabby.tabbyml.com/blog/running-tabby-as-a-language-server
4 | ---
5 | --- Language server for Tabby, an opensource, self-hosted AI coding assistant.
6 | ---
7 | --- `tabby-agent` can be installed via `npm`:
8 | ---
9 | --- ```sh
10 | --- npm install --global tabby-agent
11 | --- ```
12 | return {
13 | cmd = { 'tabby-agent', '--lsp', '--stdio' },
14 | filetypes = {},
15 | root_markers = { '.git' },
16 | }
17 |
--------------------------------------------------------------------------------
/lsp/taplo.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://taplo.tamasfe.dev/cli/usage/language-server.html
4 | ---
5 | --- Language server for Taplo, a TOML toolkit.
6 | ---
7 | --- `taplo-cli` can be installed via `cargo`:
8 | --- ```sh
9 | --- cargo install --features lsp --locked taplo-cli
10 | --- ```
11 | return {
12 | cmd = { 'taplo', 'lsp', 'stdio' },
13 | filetypes = { 'toml' },
14 | root_markers = { '.taplo.toml', 'taplo.toml', '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/templ.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://templ.guide
4 | ---
5 | --- The official language server for the templ HTML templating language.
6 | return {
7 | cmd = { 'templ', 'lsp' },
8 | filetypes = { 'templ' },
9 | root_markers = { 'go.work', 'go.mod', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/tflint.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/terraform-linters/tflint
4 | ---
5 | --- A pluggable Terraform linter that can act as lsp server.
6 | --- Installation instructions can be found in https://github.com/terraform-linters/tflint#installation.
7 | return {
8 | cmd = { 'tflint', '--langserver' },
9 | filetypes = { 'terraform' },
10 | root_markers = { '.terraform', '.git', '.tflint.hcl' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/thriftls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/joyme123/thrift-ls
4 | ---
5 | --- you can install thriftls by mason or download binary here: https://github.com/joyme123/thrift-ls/releases
6 | return {
7 | cmd = { 'thriftls' },
8 | filetypes = { 'thrift' },
9 | root_markers = { '.thrift' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/tilt_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/tilt-dev/tilt
4 | ---
5 | --- Tilt language server.
6 | ---
7 | --- You might need to add filetype detection manually:
8 | ---
9 | --- ```vim
10 | --- autocmd BufRead Tiltfile setf=tiltfile
11 | --- ```
12 | return {
13 | cmd = { 'tilt', 'lsp', 'start' },
14 | filetypes = { 'tiltfile' },
15 | root_markers = { '.git' },
16 | }
17 |
--------------------------------------------------------------------------------
/lsp/tofu_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- [OpenTofu Language Server](https://github.com/opentofu/tofu-ls)
4 | ---
5 | return {
6 | cmd = { 'tofu-ls', 'serve' },
7 | filetypes = { 'opentofu', 'opentofu-vars' },
8 | root_markers = { '.terraform', '.git' },
9 | }
10 |
--------------------------------------------------------------------------------
/lsp/tombi.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://tombi-toml.github.io/tombi/
4 | ---
5 | --- Language server for Tombi, a TOML toolkit.
6 | ---
7 | return {
8 | cmd = { 'tombi', 'lsp' },
9 | filetypes = { 'toml' },
10 | root_markers = { 'tombi.toml', 'pyproject.toml', '.git' },
11 | }
12 |
--------------------------------------------------------------------------------
/lsp/tsp_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/microsoft/typespec
4 | ---
5 | --- The language server for TypeSpec, a language for defining cloud service APIs and shapes.
6 | ---
7 | --- `tsp-server` can be installed together with the typespec compiler via `npm`:
8 | --- ```sh
9 | --- npm install -g @typespec/compiler
10 | --- ```
11 | return {
12 | cmd = { 'tsp-server', '--stdio' },
13 | filetypes = { 'typespec' },
14 | root_markers = { 'tspconfig.yaml', '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/ttags.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/npezza93/ttags
4 | return {
5 | cmd = { 'ttags', 'lsp' },
6 | filetypes = { 'ruby', 'rust', 'javascript', 'haskell' },
7 | root_markers = { '.git' },
8 | }
9 |
--------------------------------------------------------------------------------
/lsp/turbo_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://www.npmjs.com/package/turbo-language-server
4 | ---
5 | --- `turbo-language-server` can be installed via `npm`:
6 | ---
7 | --- ```sh
8 | --- npm install -g turbo-language-server
9 | --- ```
10 | ---
11 | --- or via `yarn`:
12 | ---
13 | --- ```sh
14 | --- yarn global add turbo-language-server
15 | --- ```
16 | return {
17 | cmd = { 'turbo-language-server', '--stdio' },
18 | filetypes = { 'html', 'ruby', 'eruby', 'blade', 'php' },
19 | root_markers = { 'Gemfile', '.git' },
20 | }
21 |
--------------------------------------------------------------------------------
/lsp/tvm_ffi_navigator.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/tqchen/ffi-navigator
4 | ---
5 | --- The Language Server for FFI calls in TVM to be able jump between python and C++
6 | ---
7 | --- FFI navigator can be installed with `pip install ffi-navigator`, buf for more details, please see
8 | --- https://github.com/tqchen/ffi-navigator?tab=readme-ov-file#installation
9 | return {
10 | cmd = { 'python', '-m', 'ffi_navigator.langserver' },
11 | filetypes = { 'python', 'cpp' },
12 | root_markers = { 'pyproject.toml', '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/twiggy_language_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/moetelo/twiggy
4 | ---
5 | --- `twiggy-language-server` can be installed via `npm`:
6 | --- ```sh
7 | --- npm install -g twiggy-language-server
8 | --- ```
9 | return {
10 | cmd = { 'twiggy-language-server', '--stdio' },
11 | filetypes = { 'twig' },
12 | root_markers = { 'composer.json', '.git' },
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/ty.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/astral-sh/ty
4 | ---
5 | --- A Language Server Protocol implementation for ty, an extremely fast Python type checker and language server, written in Rust.
6 | ---
7 | --- For installation instructions, please refer to the [ty documentation](https://github.com/astral-sh/ty/blob/main/README.md#getting-started).
8 | return {
9 | cmd = { 'ty', 'server' },
10 | filetypes = { 'python' },
11 | root_markers = { 'ty.toml', 'pyproject.toml', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/typeprof.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/ruby/typeprof
4 | ---
5 | --- `typeprof` is the built-in analysis and LSP tool for Ruby 3.1+.
6 | return {
7 | cmd = { 'typeprof', '--lsp', '--stdio' },
8 | filetypes = { 'ruby', 'eruby' },
9 | root_markers = { 'Gemfile', '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/typos_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/crate-ci/typos
4 | --- https://github.com/tekumara/typos-lsp
5 | ---
6 | --- A Language Server Protocol implementation for Typos, a low false-positive
7 | --- source code spell checker, written in Rust. Download it from the releases page
8 | --- on GitHub: https://github.com/tekumara/typos-lsp/releases
9 | return {
10 | cmd = { 'typos-lsp' },
11 | root_markers = { 'typos.toml', '_typos.toml', '.typos.toml', 'pyproject.toml', 'Cargo.toml' },
12 | settings = {},
13 | }
14 |
--------------------------------------------------------------------------------
/lsp/typst_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/nvarner/typst-lsp
4 | ---
5 | --- Language server for Typst.
6 | return {
7 | cmd = { 'typst-lsp' },
8 | filetypes = { 'typst' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/uiua.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/uiua-lang/uiua/
4 | ---
5 | --- The builtin language server of the Uiua interpreter.
6 | ---
7 | --- The Uiua interpreter can be installed with `cargo install uiua`
8 | return {
9 | cmd = { 'uiua', 'lsp' },
10 | filetypes = { 'uiua' },
11 | root_markers = { 'main.ua', '.fmt.ua', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/ungrammar_languageserver.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/binhtran432k/ungrammar-language-features
4 | --- Language Server for Ungrammar.
5 | ---
6 | --- Ungrammar Language Server can be installed via npm:
7 | --- ```sh
8 | --- npm i ungrammar-languageserver -g
9 | --- ```
10 | return {
11 | cmd = { 'ungrammar-languageserver', '--stdio' },
12 | filetypes = { 'ungrammar' },
13 | root_markers = { '.git' },
14 | settings = {
15 | ungrammar = {
16 | validate = {
17 | enable = true,
18 | },
19 | format = {
20 | enable = true,
21 | },
22 | },
23 | },
24 | }
25 |
--------------------------------------------------------------------------------
/lsp/unison.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/unisonweb/unison/blob/trunk/docs/language-server.markdown
4 |
5 | local util = require 'lspconfig.util'
6 |
7 | return {
8 | cmd = { 'nc', 'localhost', os.getenv 'UNISON_LSP_PORT' or '5757' },
9 | filetypes = { 'unison' },
10 | root_dir = function(bufnr, on_dir)
11 | local fname = vim.api.nvim_buf_get_name(bufnr)
12 | on_dir(util.root_pattern('*.u')(fname))
13 | end,
14 | settings = {},
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/uvls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://codeberg.org/caradhras/uvls
4 | --- Language server for UVL, written using tree sitter and rust.
5 | --- You can install the server easily using cargo:
6 | --- ```sh
7 | --- git clone https://codeberg.org/caradhras/uvls
8 | --- cd uvls
9 | --- cargo install --path .
10 | --- ```
11 | ---
12 | --- Note: To activate properly nvim needs to know the uvl filetype.
13 | --- You can add it via:
14 | --- ```lua
15 | --- vim.cmd([[au BufRead,BufNewFile *.uvl setfiletype uvl]])
16 | --- ```
17 | return {
18 | cmd = { 'uvls' },
19 | filetypes = { 'uvl' },
20 | root_markers = { '.git' },
21 | }
22 |
--------------------------------------------------------------------------------
/lsp/v_analyzer.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/vlang/v-analyzer
4 | ---
5 | --- V language server.
6 | ---
7 | --- `v-analyzer` can be installed by following the instructions [here](https://github.com/vlang/v-analyzer#installation).
8 | return {
9 | cmd = { 'v-analyzer' },
10 | filetypes = { 'v', 'vsh', 'vv' },
11 | root_markers = { 'v.mod', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/vale_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/errata-ai/vale-ls
4 | ---
5 | --- An implementation of the Language Server Protocol (LSP) for the Vale command-line tool.
6 | return {
7 | cmd = { 'vale-ls' },
8 | filetypes = { 'markdown', 'text', 'tex', 'rst' },
9 | root_markers = { '.vale.ini' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/vectorcode_server.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | --- https://github.com/Davidyz/VectorCode
3 | ---
4 | --- A Language Server Protocol implementation for VectorCode, a code repository indexing tool.
5 | return {
6 | cmd = { 'vectorcode-server' },
7 | root_dir = vim.fs.root(0, { '.vectorcode', '.git' }),
8 | settings = {},
9 | }
10 |
--------------------------------------------------------------------------------
/lsp/verible.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/chipsalliance/verible
4 | ---
5 | --- A linter and formatter for verilog and SystemVerilog files.
6 | ---
7 | --- Release binaries can be downloaded from [here](https://github.com/chipsalliance/verible/releases)
8 | --- and placed in a directory on PATH.
9 | ---
10 | --- See https://github.com/chipsalliance/verible/tree/master/verilog/tools/ls/README.md for options.
11 | return {
12 | cmd = { 'verible-verilog-ls' },
13 | filetypes = { 'systemverilog', 'verilog' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/veryl_ls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/veryl-lang/veryl
4 | ---
5 | --- Language server for Veryl
6 | ---
7 | --- `veryl-ls` can be installed via `cargo`:
8 | --- ```sh
9 | --- cargo install veryl-ls
10 | --- ```
11 | return {
12 | cmd = { 'veryl-ls' },
13 | filetypes = { 'veryl' },
14 | root_markers = { '.git' },
15 | }
16 |
--------------------------------------------------------------------------------
/lsp/vls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/vlang/vls
4 | ---
5 | --- V language server.
6 | ---
7 | --- `v-language-server` can be installed by following the instructions [here](https://github.com/vlang/vls#installation).
8 | return {
9 | cmd = { 'v', 'ls' },
10 | filetypes = { 'v', 'vlang' },
11 | root_markers = { 'v.mod', '.git' },
12 | }
13 |
--------------------------------------------------------------------------------
/lsp/volar.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- Renamed to [vue_ls](#vue_ls)
4 | ---
5 | ---
6 | vim.deprecate('volar', 'vue_ls', '3.0.0', 'lspconfig', false)
7 |
8 | return vim.lsp.config.vue_ls
9 |
--------------------------------------------------------------------------------
/lsp/vscoqtop.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/coq-community/vscoq
4 | return {
5 | cmd = { 'vscoqtop' },
6 | filetypes = { 'coq' },
7 | root_markers = { '_CoqProject', '.git' },
8 | }
9 |
--------------------------------------------------------------------------------
/lsp/wasm_language_tools.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/g-plane/wasm-language-tools
4 | ---
5 | --- WebAssembly Language Tools aims to provide and improve the editing experience of WebAssembly Text Format.
6 | --- It also provides an out-of-the-box formatter (a.k.a. pretty printer) for WebAssembly Text Format.
7 | return {
8 | cmd = { 'wat_server' },
9 | filetypes = { 'wat' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/wgsl_analyzer.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/wgsl-analyzer/wgsl-analyzer
4 | ---
5 | --- `wgsl-analyzer` can be installed via `cargo`:
6 | --- ```sh
7 | --- cargo install --git https://github.com/wgsl-analyzer/wgsl-analyzer wgsl-analyzer
8 | --- ```
9 | return {
10 | cmd = { 'wgsl-analyzer' },
11 | filetypes = { 'wgsl' },
12 | root_markers = { '.git' },
13 | settings = {},
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/yang_lsp.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://github.com/TypeFox/yang-lsp
4 | ---
5 | --- A Language Server for the YANG data modeling language.
6 | return {
7 | cmd = { 'yang-language-server' },
8 | filetypes = { 'yang' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/yls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://pypi.org/project/yls-yara/
4 | ---
5 | --- An YLS plugin adding YARA linting capabilities.
6 | ---
7 | --- This plugin runs yara.compile on every save, parses the errors, and returns list of diagnostic messages.
8 | ---
9 | --- Language Server: https://github.com/avast/yls
10 | return {
11 | cmd = { 'yls', '-vv' },
12 | filetypes = { 'yar', 'yara' },
13 | root_markers = { '.git' },
14 | }
15 |
--------------------------------------------------------------------------------
/lsp/ziggy.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://ziggy-lang.io/documentation/ziggy-lsp/
4 | ---
5 | --- Language server for the Ziggy data serialization format
6 | return {
7 | cmd = { 'ziggy', 'lsp' },
8 | filetypes = { 'ziggy' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/ziggy_schema.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | ---
3 | --- https://ziggy-lang.io/documentation/ziggy-lsp/
4 | ---
5 | --- Language server for schema files of the Ziggy data serialization format
6 | return {
7 | cmd = { 'ziggy', 'lsp', '--schema' },
8 | filetypes = { 'ziggy_schema' },
9 | root_markers = { '.git' },
10 | }
11 |
--------------------------------------------------------------------------------
/lsp/zls.lua:
--------------------------------------------------------------------------------
1 | ---@brief
2 | --- https://github.com/zigtools/zls
3 | ---
4 | --- Zig LSP implementation + Zig Language Server
5 |
6 | return {
7 | cmd = { 'zls' },
8 | filetypes = { 'zig', 'zir' },
9 | root_markers = { 'zls.json', 'build.zig', '.git' },
10 | workspace_required = false,
11 | }
12 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/agda_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'als' },
6 | filetypes = { 'agda' },
7 | root_dir = util.root_pattern('.git', '*.agda-lib'),
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/agda/agda-language-server
13 |
14 | Language Server for Agda.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/aiken.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'aiken', 'lsp' },
6 | filetypes = { 'aiken' },
7 | root_dir = function(fname)
8 | return util.root_pattern('aiken.toml', '.git')(fname)
9 | end,
10 | },
11 | docs = {
12 | description = [[
13 | https://github.com/aiken-lang/aiken
14 |
15 | A language server for Aiken Programming Language.
16 | [Installation](https://aiken-lang.org/installation-instructions)
17 |
18 | It can be i
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/air.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'air', 'language-server' },
4 | filetypes = { 'r' },
5 | root_dir = vim.fs.root(0, { 'air.toml', '.air.toml', '.git' }),
6 | single_file_support = true,
7 | },
8 | docs = {
9 | description = [[
10 | https://github.com/posit-dev/air
11 |
12 | Air is an R formatter and language server, written in Rust.
13 |
14 | Refer to the [documentation](https://posit-dev.github.io/air/editors.html) for more details.
15 |
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/antlersls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'antlersls', '--stdio' },
6 | filetypes = { 'html', 'antlers' },
7 | root_dir = util.root_pattern 'composer.json',
8 | },
9 | docs = {
10 | description = [[
11 | https://www.npmjs.com/package/antlers-language-server
12 |
13 | `antlersls` can be installed via `npm`:
14 | ```sh
15 | npm install -g antlers-language-server
16 | ```
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/asm_lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'asm-lsp' },
4 | filetypes = { 'asm', 'vmasm' },
5 | single_file_support = true,
6 | root_dir = function(fname)
7 | return vim.fs.dirname(vim.fs.find({ '.asm-lsp.toml', '.git' }, { path = fname, upward = true })[1])
8 | end,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/bergercookie/asm-lsp
13 |
14 | Language Server for NASM/GAS/GO Assembly
15 |
16 | `asm-lsp` can be installed via cargo:
17 | cargo install asm-lsp
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/awk_ls.lua:
--------------------------------------------------------------------------------
1 | if vim.version().major == 0 and vim.version().minor < 7 then
2 | vim.notify('The AWK language server requires nvim >= 0.7', vim.log.levels.ERROR)
3 | return
4 | end
5 |
6 | return {
7 | default_config = {
8 | cmd = { 'awk-language-server' },
9 | filetypes = { 'awk' },
10 | single_file_support = true,
11 | },
12 | docs = {
13 | description = [[
14 | https://github.com/Beaglefoot/awk-language-server/
15 |
16 | `awk-language-server` can be installed via `npm`:
17 | ```sh
18 | npm install -g awk-language-server
19 | ```
20 | ]],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ballerina.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'bal', 'start-language-server' },
6 | filetypes = { 'ballerina' },
7 | root_dir = util.root_pattern 'Ballerina.toml',
8 | },
9 | docs = {
10 | description = [[
11 | Ballerina language server
12 |
13 | The Ballerina language's CLI tool comes with its own language server implementation.
14 | The `bal` command line tool must be installed and available in your system's PATH.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/beancount.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'beancount-language-server', '--stdio' },
4 | filetypes = { 'beancount', 'bean' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | init_options = {},
10 | },
11 | docs = {
12 | description = [[
13 | https://github.com/polarmutex/beancount-language-server#installation
14 |
15 | See https://github.com/polarmutex/beancount-language-server#configuration for configuration options
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/bitbake_language_server.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'bitbake-language-server' },
4 | filetypes = { 'bitbake' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | 🛠️ bitbake language server
12 | ]],
13 | },
14 | }
15 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/bqls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'bqls' },
4 | filetypes = { 'sql' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | settings = {},
10 | },
11 | docs = {
12 | description = [[
13 | https://github.com/kitagry/bqls
14 |
15 | The `bqls` BigQuery language server can be installed by running:
16 |
17 | ```sh
18 | $ go install github.com/kitagry/bqls@latest
19 | ```
20 | ]],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/bright_script.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig/util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'bsc', '--lsp', '--stdio' },
6 | filetypes = { 'brs' },
7 | single_file_support = true,
8 | root_dir = util.root_pattern('makefile', 'Makefile', '.git'),
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/RokuCommunity/brighterscript
13 |
14 | `brightscript` can be installed via `npm`:
15 | ```sh
16 | npm install -g brighterscript
17 | ```
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/bsl_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | filetypes = { 'bsl', 'os' },
4 | root_dir = function(fname)
5 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
6 | end,
7 | },
8 | docs = {
9 | description = [[
10 | https://github.com/1c-syntax/bsl-language-server
11 |
12 | Language Server Protocol implementation for 1C (BSL) - 1C:Enterprise 8 and OneScript languages.
13 |
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/buck2.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'buck2', 'lsp' },
6 | filetypes = { 'bzl' },
7 | root_dir = function(fname)
8 | return util.root_pattern '.buckconfig'(fname)
9 | end,
10 | },
11 | docs = {
12 | description = [=[
13 | https://github.com/facebook/buck2
14 |
15 | Build system, successor to Buck
16 |
17 | To better detect Buck2 project files, the following can be added:
18 |
19 | ```
20 | vim.cmd [[ autocmd BufRead,BufNewFile *.bxl,BUCK,TARGETS set filetype=bzl ]]
21 | ```
22 | ]=],
23 | },
24 | }
25 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/buf_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'buf', 'beta', 'lsp', '--timeout=0', '--log-format=text' },
4 | filetypes = { 'proto' },
5 | root_dir = require('lspconfig.util').root_pattern('buf.yaml', '.git'),
6 | },
7 | docs = {
8 | description = [[
9 | https://github.com/bufbuild/buf
10 |
11 | buf beta lsp included in the cli itself
12 |
13 | buf beta lsp is a Protobuf language server compatible with Buf modules and workspaces
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/bufls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'bufls', 'serve' },
6 | filetypes = { 'proto' },
7 | root_dir = function(fname)
8 | return util.root_pattern('buf.work.yaml', '.git')(fname)
9 | end,
10 | },
11 | docs = {
12 | description = [[
13 | https://github.com/bufbuild/buf-language-server
14 |
15 | `buf-language-server` can be installed via `go install`:
16 | ```sh
17 | go install github.com/bufbuild/buf-language-server/cmd/bufls@latest
18 | ```
19 |
20 | bufls is a Protobuf language server compatible with Buf modules and workspaces
21 | ]],
22 | },
23 | }
24 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/bzl.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'bzl', 'lsp', 'serve' },
6 | filetypes = { 'bzl' },
7 | -- https://docs.bazel.build/versions/5.4.1/build-ref.html#workspace
8 | root_dir = util.root_pattern('WORKSPACE', 'WORKSPACE.bazel'),
9 | },
10 | docs = {
11 | description = [[
12 | https://bzl.io/
13 |
14 | https://docs.stack.build/docs/cli/installation
15 |
16 | https://docs.stack.build/docs/vscode/starlark-language-server
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/c3_lsp.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'c3lsp' },
6 | root_dir = function(fname)
7 | return util.root_pattern { 'project.json', 'manifest.json', '.git' }(fname)
8 | end,
9 | filetypes = { 'c3', 'c3i' },
10 | },
11 | docs = {
12 | description = [[
13 | https://github.com/pherrymason/c3-lsp
14 |
15 | Language Server for c3.
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/cds_lsp.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'cds-lsp', '--stdio' },
6 | filetypes = { 'cds' },
7 | -- init_options = { provideFormatter = true }, -- needed to enable formatting capabilities
8 | root_dir = util.root_pattern('package.json', 'db', 'srv'),
9 | single_file_support = true,
10 | settings = {
11 | cds = { validate = true },
12 | },
13 | },
14 | docs = {
15 | description = [[
16 |
17 | https://cap.cloud.sap/docs/
18 |
19 | `cds-lsp` can be installed via `npm`:
20 |
21 | ```sh
22 | npm i -g @sap/cds-lsp
23 | ```
24 |
25 | ]],
26 | },
27 | }
28 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/circom-lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'circom-lsp' },
4 | filetypes = { 'circom' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | [Circom Language Server](https://github.com/rubydusa/circom-lsp)
13 |
14 | `circom-lsp`, the language server for the Circom language.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/clojure_lsp.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'clojure-lsp' },
6 | filetypes = { 'clojure', 'edn' },
7 | root_dir = util.root_pattern('project.clj', 'deps.edn', 'build.boot', 'shadow-cljs.edn', '.git', 'bb.edn'),
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/clojure-lsp/clojure-lsp
13 |
14 | Clojure Language Server
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/cmake.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'cmake-language-server' },
6 | filetypes = { 'cmake' },
7 | root_dir = function(fname)
8 | return util.root_pattern('CMakePresets.json', 'CTestConfig.cmake', '.git', 'build', 'cmake')(fname)
9 | end,
10 | single_file_support = true,
11 | init_options = {
12 | buildDirectory = 'build',
13 | },
14 | },
15 | docs = {
16 | description = [[
17 | https://github.com/regen100/cmake-language-server
18 |
19 | CMake LSP Implementation
20 | ]],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/cobol_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'cobol-language-support' },
4 | filetypes = { 'cobol' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | Cobol language support
12 | ]],
13 | },
14 | }
15 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/coffeesense.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'coffeesense-language-server', '--stdio' },
6 | filetypes = { 'coffee' },
7 | root_dir = util.root_pattern 'package.json',
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/phil294/coffeesense
13 |
14 | CoffeeSense Language Server
15 | `coffeesense-language-server` can be installed via `npm`:
16 | ```sh
17 | npm install -g coffeesense-language-server
18 | ```
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/coq_lsp.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'coq-lsp' },
6 | filetypes = { 'coq' },
7 | root_dir = function(fname)
8 | return util.root_pattern '_CoqProject'(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | single_file_support = true,
12 | },
13 | docs = {
14 | description = [[
15 | https://github.com/ejgallego/coq-lsp/
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/crystalline.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'crystalline' },
6 | filetypes = { 'crystal' },
7 | root_dir = function(fname)
8 | return util.root_pattern('shard.yml')(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | single_file_support = true,
12 | },
13 | docs = {
14 | description = [[
15 | https://github.com/elbywan/crystalline
16 |
17 | Crystal language server.
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/cue.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'cue', 'lsp' },
6 | filetypes = { 'cue' },
7 | root_dir = function(fname)
8 | return util.root_pattern(unpack({ 'cue.mod', '.git' }))(fname)
9 | end,
10 | single_file_support = true,
11 | },
12 | docs = {
13 | description = [[
14 | https://github.com/cue-lang/cue
15 |
16 | CUE makes it easy to validate data, write schemas, and ensure configurations align with policies.
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/dagger.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'cuelsp' },
6 | filetypes = { 'cue' },
7 | root_dir = function(fname)
8 | return util.root_pattern('cue.mod', '.git')(fname)
9 | end,
10 | single_file_support = true,
11 | },
12 | docs = {
13 | description = [[
14 | https://github.com/dagger/cuelsp
15 |
16 | Dagger's lsp server for cuelang.
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/dcmls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'dcm', 'start-server', '--client=neovim' },
6 | filetypes = { 'dart' },
7 | root_dir = util.root_pattern 'pubspec.yaml',
8 | },
9 | docs = {
10 | description = [[
11 | https://dcm.dev/
12 |
13 | Language server for DCM analyzer.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/debputy.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'debputy', 'lsp', 'server' },
6 | filetypes = { 'debcontrol', 'debcopyright', 'debchangelog', 'make', 'yaml' },
7 | root_dir = util.root_pattern 'debian',
8 | },
9 | docs = {
10 | description = [[
11 | https://salsa.debian.org/debian/debputy
12 |
13 | Language Server for Debian packages.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/diagnosticls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | -- Configuration from https://github.com/iamcco/diagnostic-languageserver#config--document
3 | default_config = {
4 | cmd = { 'diagnostic-languageserver', '--stdio' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | -- Empty by default, override to add filetypes.
10 | filetypes = {},
11 | },
12 | docs = {
13 | description = [[
14 | https://github.com/iamcco/diagnostic-languageserver
15 |
16 | Diagnostic language server integrate with linters.
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/djlsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'djlsp' },
4 | filetypes = { 'html', 'htmldjango' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | settings = {},
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/fourdigits/django-template-lsp
13 |
14 | `djlsp`, a language server for Django templates.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/dolmenls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'dolmenls' },
4 | filetypes = { 'smt2', 'tptp', 'p', 'cnf', 'icnf', 'zf' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/Gbury/dolmen/blob/master/doc/lsp.md
13 |
14 | `dolmenls` can be installed via `opam`
15 | ```sh
16 | opam install dolmen_lsp
17 | ```
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/dotls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'dot-language-server', '--stdio' },
4 | filetypes = { 'dot' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/nikeee/dot-language-server
13 |
14 | `dot-language-server` can be installed via `npm`:
15 | ```sh
16 | npm install -g dot-language-server
17 | ```
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/earthlyls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig/util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'earthlyls' },
6 | filetypes = { 'earthfile' },
7 | root_dir = util.root_pattern 'Earthfile',
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/glehmann/earthlyls
12 |
13 | A fast language server for earthly.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ecsact.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'ecsact_lsp_server', '--stdio' },
6 | filetypes = { 'ecsact' },
7 | root_dir = util.root_pattern '.git',
8 | single_file_support = true,
9 | },
10 |
11 | docs = {
12 | description = [[
13 | https://github.com/ecsact-dev/ecsact_lsp_server
14 |
15 | Language server for Ecsact.
16 |
17 | The default cmd assumes `ecsact_lsp_server` is in your PATH. Typically from the
18 | Ecsact SDK: https://ecsact.dev/start
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/elp.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'elp', 'server' },
6 | filetypes = { 'erlang' },
7 | root_dir = util.root_pattern('rebar.config', 'erlang.mk', '.git'),
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://whatsapp.github.io/erlang-language-platform
13 |
14 | ELP integrates Erlang into modern IDEs via the language server protocol and was
15 | inspired by rust-analyzer.
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ember.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'ember-language-server', '--stdio' },
6 | filetypes = { 'handlebars', 'typescript', 'javascript', 'typescript.glimmer', 'javascript.glimmer' },
7 | root_dir = util.root_pattern('ember-cli-build.js', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/ember-tooling/ember-language-server
12 |
13 | `ember-language-server` can be installed via `npm`:
14 |
15 | ```sh
16 | npm install -g @ember-tooling/ember-language-server
17 | ```
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/facility_language_server.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'facility-language-server' },
4 | filetypes = { 'fsd' },
5 | single_file_support = true,
6 | root_dir = function(fname)
7 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
8 | end,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/FacilityApi/FacilityLanguageServer
13 |
14 | Facility language server protocol (LSP) support.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/fennel_language_server.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'fennel-language-server' },
4 | filetypes = { 'fennel' },
5 | single_file_support = true,
6 | root_dir = function(fname)
7 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
8 | end,
9 | settings = {},
10 | },
11 | docs = {
12 | description = [[
13 | https://github.com/rydesun/fennel-language-server
14 |
15 | Fennel language server protocol (LSP) support.
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/flow.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'npx', '--no-install', 'flow', 'lsp' },
6 | filetypes = { 'javascript', 'javascriptreact', 'javascript.jsx' },
7 | root_dir = util.root_pattern '.flowconfig',
8 | },
9 | docs = {
10 | description = [[
11 | https://flow.org/
12 | https://github.com/facebook/flow
13 |
14 | See below for how to setup Flow itself.
15 | https://flow.org/en/docs/install/
16 |
17 | See below for lsp command options.
18 |
19 | ```sh
20 | npx flow lsp --help
21 | ```
22 | ]],
23 | },
24 | }
25 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/flux_lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'flux-lsp' },
4 | filetypes = { 'flux' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/influxdata/flux-lsp
13 | `flux-lsp` can be installed via `cargo`:
14 | ```sh
15 | cargo install --git https://github.com/influxdata/flux-lsp
16 | ```
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/fstar.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'fstar.exe', '--lsp' },
4 | filetypes = { 'fstar' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/FStarLang/FStar
12 |
13 | LSP support is included in FStar. Make sure `fstar.exe` is in your PATH.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/futhark_lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'futhark', 'lsp' },
4 | filetypes = { 'futhark', 'fut' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/diku-dk/futhark
13 |
14 | Futhark Language Server
15 |
16 | This language server comes with the futhark compiler and is run with the command
17 | ```
18 | futhark lsp
19 | ```
20 | ]],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/gdscript.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | local port = os.getenv 'GDScript_Port' or '6005'
4 | local cmd = vim.lsp.rpc.connect('127.0.0.1', tonumber(port))
5 |
6 | return {
7 | default_config = {
8 | cmd = cmd,
9 | filetypes = { 'gd', 'gdscript', 'gdscript3' },
10 | root_dir = util.root_pattern('project.godot', '.git'),
11 | },
12 | docs = {
13 | description = [[
14 | https://github.com/godotengine/godot
15 |
16 | Language server for GDScript, used by Godot Engine.
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/gdshader_lsp.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'gdshader-lsp', '--stdio' },
6 | filetypes = { 'gdshader', 'gdshaderinc' },
7 | root_dir = util.root_pattern 'project.godot',
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/godofavacyn/gdshader-lsp
12 |
13 | A language server for the Godot Shading language.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ghcide.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'ghcide', '--lsp' },
6 | filetypes = { 'haskell', 'lhaskell' },
7 | root_dir = util.root_pattern('stack.yaml', 'hie-bios', 'BUILD.bazel', 'cabal.config', 'package.yaml'),
8 | },
9 |
10 | docs = {
11 | description = [[
12 | https://github.com/digital-asset/ghcide
13 |
14 | A library for building Haskell IDE tooling.
15 | "ghcide" isn't for end users now. Use "haskell-language-server" instead of "ghcide".
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/gleam.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'gleam', 'lsp' },
6 | filetypes = { 'gleam' },
7 | root_dir = function(fname)
8 | return util.root_pattern('gleam.toml', '.git')(fname)
9 | end,
10 | },
11 | docs = {
12 | description = [[
13 | https://github.com/gleam-lang/gleam
14 |
15 | A language server for Gleam Programming Language.
16 |
17 | It comes with the Gleam compiler, for installation see: [Installing Gleam](https://gleam.run/getting-started/installing/)
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/glsl_analyzer.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'glsl_analyzer' },
4 | filetypes = { 'glsl', 'vert', 'tesc', 'tese', 'frag', 'geom', 'comp' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | capabilities = {},
10 | },
11 | docs = {
12 | description = [[
13 | https://github.com/nolanderc/glsl_analyzer
14 |
15 | Language server for GLSL
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/hdl_checker.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'hdl_checker', '--lsp' },
4 | filetypes = { 'vhdl', 'verilog', 'systemverilog' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/suoto/hdl_checker
13 | Language server for hdl-checker.
14 | Install using: `pip install hdl-checker --upgrade`
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/hhvm.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'hh_client', 'lsp' },
6 | filetypes = { 'php', 'hack' },
7 | root_dir = util.root_pattern '.hhconfig',
8 | },
9 | docs = {
10 | description = [[
11 | Language server for programs written in Hack
12 | https://hhvm.com/
13 | https://github.com/facebook/hhvm
14 | See below for how to setup HHVM & typechecker:
15 | https://docs.hhvm.com/hhvm/getting-started/getting-started
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/hlasm.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'hlasm_language_server' },
6 | filetypes = { 'hlasm' },
7 | root_dir = util.root_pattern '.hlasmplugin',
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | `hlasm_language_server` is a language server for the High Level Assembler language used on IBM SystemZ mainframes.
13 |
14 | 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).
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/hydra_lsp.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'hydra-lsp' },
6 | filetypes = { 'yaml' },
7 | root_dir = util.root_pattern '.git',
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/Retsediv/hydra-lsp
13 |
14 | LSP for Hydra Python package config files.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/hyprls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'hyprls', '--stdio' },
4 | filetypes = { 'hyprlang' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/hyprland-community/hyprls
13 |
14 | `hyprls` can be installed via `go`:
15 | ```sh
16 | go install github.com/ewen-lbh/hyprls/cmd/hyprls@latest
17 | ```
18 |
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/java_language_server.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | filetypes = { 'java' },
6 | root_dir = util.root_pattern('build.gradle', 'build.gradle.kts', 'pom.xml', '.git'),
7 | settings = {},
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/georgewfraser/java-language-server
12 |
13 | Java language server
14 |
15 | Point `cmd` to `lang_server_linux.sh` or the equivalent script for macOS/Windows provided by java-language-server
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/jedi_language_server.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | local root_files = {
4 | 'pyproject.toml',
5 | 'setup.py',
6 | 'setup.cfg',
7 | 'requirements.txt',
8 | 'Pipfile',
9 | '.git',
10 | }
11 |
12 | return {
13 | default_config = {
14 | cmd = { 'jedi-language-server' },
15 | filetypes = { 'python' },
16 | root_dir = util.root_pattern(unpack(root_files)),
17 | single_file_support = true,
18 | },
19 | docs = {
20 | description = [[
21 | https://github.com/pappasam/jedi-language-server
22 |
23 | `jedi-language-server`, a language server for Python, built on top of jedi
24 | ]],
25 | },
26 | }
27 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/just.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'just-lsp' },
4 | filetypes = { 'just' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/terror/just-lsp
13 |
14 | `just-lsp` is an LSP for just built on top of the tree-sitter-just parser.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/kcl.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'kcl-language-server' },
6 | filetypes = { 'kcl' },
7 | root_dir = util.root_pattern '.git',
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/kcl-lang/kcl.nvim
12 |
13 | Language server for the KCL configuration and policy language.
14 |
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/koka.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'koka', '--language-server', '--lsstdio' },
4 | filetypes = { 'koka' },
5 | single_file_support = true,
6 | root_dir = function(fname)
7 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
8 | end,
9 | },
10 |
11 | docs = {
12 | description = [[
13 | https://koka-lang.github.io/koka/doc/index.html
14 | Koka is a functional programming language with effect types and handlers.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/kulala_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'kulala-ls', '--stdio' },
4 | filetypes = { 'http' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/mistweaverco/kulala-ls
13 |
14 | A minimal language server for HTTP syntax.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/laravel_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'laravel-ls' },
6 | filetypes = { 'php', 'blade' },
7 | root_dir = util.root_pattern({ 'artisan' }),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/laravel-ls/laravel-ls
12 |
13 | `laravel-ls`, language server for laravel
14 |
15 | The default `cmd` assumes that the `laravel-ls` binary can be found in `$PATH`.
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/lelwel_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'lelwel-ls' },
4 | filetypes = { 'llw' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/0x2a-42/lelwel
12 |
13 | Language server for lelwel grammars.
14 |
15 | You can install `lelwel-ls` via cargo:
16 | ```sh
17 | cargo install --features="lsp" lelwel
18 | ```
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/marko-js.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'marko-language-server', '--stdio' },
4 | filetypes = { 'marko' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/marko-js/language-server
12 |
13 | Using the Language Server Protocol to improve Marko's developer experience.
14 |
15 | Can be installed via npm:
16 | ```
17 | npm i -g @marko/language-server
18 | ```
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/mesonlsp.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'mesonlsp', '--lsp' },
6 | filetypes = { 'meson' },
7 | root_dir = util.root_pattern('meson.build', 'meson_options.txt', 'meson.options', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/JCWasmx86/mesonlsp
12 |
13 | An unofficial, unendorsed language server for meson written in C++
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/millet.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'millet' },
6 | filetypes = { 'sml' },
7 | root_dir = util.root_pattern 'millet.toml',
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/azdavis/millet
13 |
14 | Millet, a language server for Standard ML
15 |
16 | To use with nvim:
17 |
18 | 1. Install a Rust toolchain: https://rustup.rs
19 | 2. Clone the repo
20 | 3. Run `cargo build --release --bin lang-srv`
21 | 4. Move `target/release/lang-srv` to somewhere on your $PATH as `millet`
22 | ]],
23 | },
24 | }
25 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/mint.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'mint', 'ls' },
6 | filetypes = { 'mint' },
7 | root_dir = function(fname)
8 | return util.root_pattern 'mint.json'(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | single_file_support = true,
12 | },
13 | docs = {
14 | description = [[
15 | https://www.mint-lang.com
16 |
17 | Install Mint using the [instructions](https://www.mint-lang.com/install).
18 | The language server is included since version 0.12.0.
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/mlir_lsp_server.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'mlir-lsp-server' },
4 | filetypes = { 'mlir' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://mlir.llvm.org/docs/Tools/MLIRLSP/#mlir-lsp-language-server--mlir-lsp-server=
13 |
14 | The Language Server for the LLVM MLIR language
15 |
16 | `mlir-lsp-server` can be installed at the llvm-project repository (https://github.com/llvm/llvm-project)
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/mm0_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'mm0-rs', 'server' },
4 | root_dir = function(fname)
5 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
6 | end,
7 | filetypes = { 'metamath-zero' },
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/digama0/mm0
13 |
14 | Language Server for the metamath-zero theorem prover.
15 |
16 | Requires [mm0-rs](https://github.com/digama0/mm0/tree/master/mm0-rs) to be installed
17 | and available on the `PATH`.
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/motoko_lsp.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'motoko-lsp', '--stdio' },
6 | filetypes = { 'motoko' },
7 | root_dir = util.root_pattern('dfx.json', '.git'),
8 | init_options = {
9 | formatter = 'auto',
10 | },
11 | single_file_support = true,
12 | },
13 | docs = {
14 | description = [[
15 | https://github.com/dfinity/vscode-motoko
16 |
17 | Language server for the Motoko programming language.
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/muon.lua:
--------------------------------------------------------------------------------
1 | local async = require('lspconfig.async')
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'muon', 'analyze', 'lsp' },
6 | filetypes = { 'meson' },
7 | root_dir = function(fname)
8 | local res = async.run_command({ 'muon', 'analyze', 'root-for', fname })
9 | if res[1] then
10 | return vim.trim(res[1])
11 | end
12 | end,
13 | },
14 | docs = {
15 | description = [[
16 | https://muon.build
17 | ]],
18 | default_config = {},
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/mutt_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'mutt-language-server' },
4 | filetypes = { 'muttrc', 'neomuttrc' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | settings = {},
10 | },
11 | docs = {
12 | description = [[
13 | https://github.com/neomutt/mutt-language-server
14 |
15 | A language server for (neo)mutt's muttrc. It can be installed via pip.
16 |
17 | ```sh
18 | pip install mutt-language-server
19 | ```
20 | ]],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/nim_langserver.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'nimlangserver' },
6 | filetypes = { 'nim' },
7 | root_dir = function(fname)
8 | return util.root_pattern '*.nimble'(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | single_file_support = true,
12 | },
13 | docs = {
14 | description = [[
15 | https://github.com/nim-lang/langserver
16 |
17 |
18 | `nim-langserver` can be installed via the `nimble` package manager:
19 | ```sh
20 | nimble install nimlangserver
21 | ```
22 | ]],
23 | },
24 | }
25 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/nimls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'nimlsp' },
6 | filetypes = { 'nim' },
7 | root_dir = function(fname)
8 | return util.root_pattern '*.nimble'(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | single_file_support = true,
12 | },
13 | docs = {
14 | description = [[
15 | https://github.com/PMunch/nimlsp
16 |
17 | `nimlsp` can be installed via the `nimble` package manager:
18 |
19 | ```sh
20 | nimble install nimlsp
21 | ```
22 | ]],
23 | },
24 | }
25 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ntt.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 | local bin_name = 'ntt'
3 |
4 | return {
5 | default_config = {
6 | cmd = { bin_name, 'langserver' },
7 | filetypes = { 'ttcn' },
8 | root_dir = util.root_pattern '.git',
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/nokia/ntt
13 | Installation instructions can be found [here](https://github.com/nokia/ntt#Install).
14 | Can be configured by passing a "settings" object to `ntt.setup{}`:
15 | ```lua
16 | require('lspconfig').ntt.setup{
17 | settings = {
18 | ntt = {
19 | }
20 | }
21 | }
22 | ```
23 | ]],
24 | },
25 | }
26 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/nushell.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'nu', '--lsp' },
4 | filetypes = { 'nu' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1] or fname)
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/nushell/nushell
13 |
14 | Nushell built-in language server.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/nxls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'nxls', '--stdio' },
6 | filetypes = { 'json', 'jsonc' },
7 | root_dir = util.root_pattern('nx.json', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/nrwl/nx-console/tree/master/apps/nxls
12 |
13 | nxls, a language server for Nx Workspaces
14 |
15 | `nxls` can be installed via `npm`:
16 | ```sh
17 | npm i -g nxls
18 | ```
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ocamlls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'ocaml-language-server', '--stdio' },
6 | filetypes = { 'ocaml', 'reason' },
7 | root_dir = util.root_pattern('*.opam', 'esy.json', 'package.json'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/ocaml-lsp/ocaml-language-server
12 |
13 | `ocaml-language-server` can be installed via `npm`
14 | ```sh
15 | npm install -g ocaml-language-server
16 | ```
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ols.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'ols' },
6 | filetypes = { 'odin' },
7 | root_dir = util.root_pattern('ols.json', '.git', '*.odin'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/DanielGavin/ols
12 |
13 | `Odin Language Server`.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/opencl_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'opencl-language-server' },
4 | filetypes = { 'opencl' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/Galarius/opencl-language-server
12 |
13 | Build instructions can be found [here](https://github.com/Galarius/opencl-language-server/blob/main/_dev/build.md).
14 |
15 | Prebuilt binaries are available for Linux, macOS and Windows [here](https://github.com/Galarius/opencl-language-server/releases).
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/openscad_lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'openscad-lsp', '--stdio' },
4 | filetypes = { 'openscad' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [=[
12 | https://github.com/Leathong/openscad-LSP
13 |
14 | A Language Server Protocol server for OpenSCAD
15 |
16 | You can build and install `openscad-lsp` binary with `cargo`:
17 | ```sh
18 | cargo install openscad-lsp
19 | ```
20 | ]=],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/pact_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'pact-lsp' },
4 | filetypes = { 'pact' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/kadena-io/pact-lsp
13 |
14 | The Pact language server
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/pbls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'pbls' },
6 | filetypes = { 'proto' },
7 | root_dir = util.root_pattern('.pbls.toml', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://git.sr.ht/~rrc/pbls
12 |
13 | Prerequisites: Ensure protoc is on your $PATH.
14 |
15 | `pbls` can be installed via `cargo install`:
16 | ```sh
17 | cargo install --git https://git.sr.ht/~rrc/pbls
18 | ```
19 |
20 | pbls is a Language Server for protobuf
21 | ]],
22 | },
23 | }
24 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/pest_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'pest-language-server' },
4 | filetypes = { 'pest' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/pest-parser/pest-ide-tools
13 |
14 | Language server for pest grammars.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/pico8_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'pico8-ls', '--stdio' },
6 | filetypes = { 'p8' },
7 | root_dir = util.root_pattern '*.p8',
8 | settings = {},
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/japhib/pico8-ls
13 |
14 | Full language support for the PICO-8 dialect of Lua.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/pkgbuild_language_server.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'pkgbuild-language-server' },
4 | filetypes = { 'PKGBUILD' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/Freed-Wu/pkgbuild-language-server
12 |
13 | Language server for ArchLinux/Windows Msys2's PKGBUILD.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/please.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'plz', 'tool', 'lps' },
6 | filetypes = { 'bzl' },
7 | root_dir = util.root_pattern '.plzconfig',
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/thought-machine/please
13 |
14 | High-performance extensible build system for reproducible multi-language builds.
15 |
16 | The `plz` binary will automatically install the LSP for you on first run
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/poryscript_pls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'poryscript-pls' },
4 | filetypes = { 'pory' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/huderlem/poryscript-pls
13 |
14 | Language server for poryscript (a high level scripting language for GBA-era Pokémon decompilation projects)
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/postgres_lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'postgrestools', 'lsp-proxy' },
4 | filetypes = {
5 | 'sql',
6 | },
7 | root_dir = vim.fs.root(0, { 'postgrestools.jsonc' }),
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://pgtools.dev
13 |
14 | A collection of language tools and a Language Server Protocol (LSP) implementation for Postgres, focusing on developer experience and reliable SQL tooling.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/prismals.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'prisma-language-server', '--stdio' },
6 | filetypes = { 'prisma' },
7 | settings = {
8 | prisma = {
9 | prismaFmtBinPath = '',
10 | },
11 | },
12 | root_dir = util.root_pattern('.git', 'package.json'),
13 | },
14 | docs = {
15 | description = [[
16 | Language Server for the Prisma JavaScript and TypeScript ORM
17 |
18 | `@prisma/language-server` can be installed via npm
19 | ```sh
20 | npm install -g @prisma/language-server
21 | ```
22 | ]],
23 | },
24 | }
25 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/prolog_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = {
6 | 'swipl',
7 | '-g',
8 | 'use_module(library(lsp_server)).',
9 | '-g',
10 | 'lsp_server:main',
11 | '-t',
12 | 'halt',
13 | '--',
14 | 'stdio',
15 | },
16 | filetypes = { 'prolog' },
17 | root_dir = util.root_pattern 'pack.pl',
18 | single_file_support = true,
19 | },
20 | docs = {
21 | description = [[
22 | https://github.com/jamesnvc/lsp_server
23 |
24 | Language Server Protocol server for SWI-Prolog
25 | ]],
26 | },
27 | }
28 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/prosemd_lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'prosemd-lsp', '--stdio' },
4 | filetypes = { 'markdown' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/kitten/prosemd-lsp
13 |
14 | An experimental LSP for Markdown.
15 |
16 | Please see the manual installation instructions: https://github.com/kitten/prosemd-lsp#manual-installation
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/protols.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'protols' },
4 | filetypes = { 'proto' },
5 | single_file_support = true,
6 | root_dir = function(fname)
7 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
8 | end,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/coder3101/protols
13 |
14 | `protols` can be installed via `cargo`:
15 | ```sh
16 | cargo install protols
17 | ```
18 |
19 | A Language Server for proto3 files. It uses tree-sitter and runs in single file mode.
20 | ]],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/psalm.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'psalm', '--language-server' },
6 | filetypes = { 'php' },
7 | root_dir = util.root_pattern('psalm.xml', 'psalm.xml.dist'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/vimeo/psalm
12 |
13 | Can be installed with composer.
14 | ```sh
15 | composer global require vimeo/psalm
16 | ```
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/pug.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'pug-lsp' },
4 | filetypes = { 'pug' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('package.json', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/opa-oz/pug-lsp
12 |
13 | An implementation of the Language Protocol Server for [Pug.js](http://pugjs.org)
14 |
15 | PugLSP 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)
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/pyre.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'pyre', 'persistent' },
6 | filetypes = { 'python' },
7 | root_dir = util.root_pattern '.pyre_configuration',
8 | },
9 | docs = {
10 | description = [[
11 | https://pyre-check.org/
12 |
13 | `pyre` a static type checker for Python 3.
14 |
15 | `pyre` offers an extremely limited featureset. It currently only supports diagnostics,
16 | which are triggered on save.
17 |
18 | Do not report issues for missing features in `pyre` to `lspconfig`.
19 |
20 | ]],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/qmlls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'qmlls' },
4 | filetypes = { 'qml', 'qmljs' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://doc.qt.io/qt-6/qtqml-tooling-qmlls.html
13 |
14 | > QML Language Server is a tool shipped with Qt that helps you write code in your favorite (LSP-supporting) editor.
15 |
16 | Source in the [QtDeclarative repository](https://code.qt.io/cgit/qt/qtdeclarative.git/)
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/quick_lint_js.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'quick-lint-js', '--lsp-server' },
6 | filetypes = { 'javascript', 'typescript' },
7 | root_dir = util.root_pattern('package.json', 'jsconfig.json', '.git'),
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://quick-lint-js.com/
13 |
14 | quick-lint-js finds bugs in JavaScript programs.
15 |
16 | See installation [instructions](https://quick-lint-js.com/install/)
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/reason_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'reason-language-server' },
6 | filetypes = { 'reason' },
7 | root_dir = util.root_pattern('bsconfig.json', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | Reason language server
12 |
13 | You can install reason language server from [reason-language-server](https://github.com/jaredly/reason-language-server) repository.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/regols.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'regols' },
6 | filetypes = { 'rego' },
7 | root_dir = function(fname)
8 | return util.root_pattern '*.rego'(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | single_file_support = true,
12 | },
13 | docs = {
14 | description = [[
15 | https://github.com/kitagry/regols
16 |
17 | OPA Rego language server.
18 |
19 | `regols` can be installed by running:
20 | ```sh
21 | go install github.com/kitagry/regols@latest
22 | ```
23 | ]],
24 | },
25 | }
26 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/robotframework_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'robotframework_ls' },
6 | filetypes = { 'robot' },
7 | root_dir = function(fname)
8 | return util.root_pattern('robotidy.toml', 'pyproject.toml', 'conda.yaml', 'robot.yaml')(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | },
12 | docs = {
13 | description = [[
14 | https://github.com/robocorp/robotframework-lsp
15 |
16 | Language Server Protocol implementation for Robot Framework.
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/roc_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'roc_language_server' },
4 | filetypes = { 'roc' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/roc-lang/roc/tree/main/crates/language_server#roc_language_server
13 |
14 | The built-in language server for the Roc programming language.
15 | [Installation](https://github.com/roc-lang/roc/tree/main/crates/language_server#installing)
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/rubocop.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'rubocop', '--lsp' },
6 | filetypes = { 'ruby' },
7 | root_dir = util.root_pattern('Gemfile', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/rubocop/rubocop
12 | ]],
13 | },
14 | }
15 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/rune_languageserver.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'rune-languageserver' },
4 | filetypes = { 'rune' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://crates.io/crates/rune-languageserver
13 |
14 | A language server for the [Rune](https://rune-rs.github.io/) Language,
15 | an embeddable dynamic programming language for Rust
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/salt_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'salt_lsp_server' },
4 | filetypes = { 'sls' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | Language server for Salt configuration files.
13 | https://github.com/dcermak/salt-lsp
14 |
15 | The language server can be installed with `pip`:
16 | ```sh
17 | pip install salt-lsp
18 | ```
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/scry.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'scry' },
6 | filetypes = { 'crystal' },
7 | root_dir = function(fname)
8 | return util.root_pattern 'shard.yml'(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | single_file_support = true,
12 | },
13 | docs = {
14 | description = [[
15 | https://github.com/crystal-lang-tools/scry
16 |
17 | Crystal language server.
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/selene3p_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require('lspconfig.util')
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'selene-3p-language-server' },
6 | filetypes = { 'lua' },
7 | root_dir = util.root_pattern('selene.toml'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/antonk52/lua-3p-language-servers
12 |
13 | 3rd party Language Server for Selene lua linter
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/serve_d.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'serve-d' },
6 | filetypes = { 'd' },
7 | root_dir = util.root_pattern('dub.json', 'dub.sdl', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/Pure-D/serve-d
12 |
13 | `Microsoft language server protocol implementation for D using workspace-d.`
14 | Download a binary from https://github.com/Pure-D/serve-d/releases and put it in your $PATH.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/smithy_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | -- pass 0 as the first argument to use STDIN/STDOUT for communication
4 | local cmd = { 'smithy-language-server', '0' }
5 |
6 | return {
7 | default_config = {
8 | cmd = cmd,
9 | filetypes = { 'smithy' },
10 | single_file_support = true,
11 | root_dir = util.root_pattern('smithy-build.json', 'build.gradle', 'build.gradle.kts', '.git'),
12 | },
13 | docs = {
14 | description = [[
15 | https://github.com/awslabs/smithy-language-server
16 |
17 | `Smithy Language Server`, A Language Server Protocol implementation for the Smithy IDL
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/snakeskin_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'snakeskin-cli', 'lsp', '--stdio' },
6 | filetypes = { 'ss' },
7 | root_dir = util.root_pattern 'package.json',
8 | },
9 | docs = {
10 | description = [[
11 | https://www.npmjs.com/package/@snakeskin/cli
12 |
13 | `snakeskin cli` can be installed via `npm`:
14 | ```sh
15 | npm install -g @snakeskin/cli
16 | ```
17 | ]],
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/solc.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'solc', '--lsp' },
6 | filetypes = { 'solidity' },
7 | root_dir = util.root_pattern('hardhat.config.*', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://docs.soliditylang.org/en/latest/installing-solidity.html
12 |
13 | solc is the native language server for the Solidity language.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/sorbet.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'srb', 'tc', '--lsp' },
6 | filetypes = { 'ruby' },
7 | root_dir = util.root_pattern('Gemfile', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://sorbet.org
12 |
13 | Sorbet is a fast, powerful type checker designed for Ruby.
14 |
15 | You can install Sorbet via gem install. You might also be interested in how to set
16 | Sorbet up for new projects: https://sorbet.org/docs/adopting.
17 |
18 | ```sh
19 | gem install sorbet
20 | ```
21 | ]],
22 | },
23 | }
24 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/sqlls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'sql-language-server', 'up', '--method', 'stdio' },
6 | filetypes = { 'sql', 'mysql' },
7 | root_dir = util.root_pattern '.sqllsrc.json',
8 | settings = {},
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/joe-re/sql-language-server
13 |
14 | This 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).
15 |
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/standardrb.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'standardrb', '--lsp' },
6 | filetypes = { 'ruby' },
7 | root_dir = util.root_pattern('Gemfile', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/testdouble/standard
12 |
13 | Ruby Style Guide, with linter & automatic code fixer.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/starpls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig/util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'starpls' },
6 | filetypes = { 'bzl' },
7 | root_dir = util.root_pattern('WORKSPACE', 'WORKSPACE.bazel', 'MODULE.bazel'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/withered-magic/starpls
12 |
13 | `starpls` is an LSP implementation for Starlark. Installation instructions can be found in the project's README.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/statix.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'statix', 'check', '--stdin' },
6 | filetypes = { 'nix' },
7 | single_file_support = true,
8 | root_dir = util.root_pattern('flake.nix', '.git'),
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/nerdypepper/statix
13 |
14 | lints and suggestions for the nix programming language
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/steep.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'steep', 'langserver' },
6 | filetypes = { 'ruby', 'eruby' },
7 | root_dir = util.root_pattern('Steepfile', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/soutaro/steep
12 |
13 | `steep` is a static type checker for Ruby.
14 |
15 | You need `Steepfile` to make it work. Generate it with `steep init`.
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/stimulus_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'stimulus-language-server', '--stdio' },
6 | filetypes = { 'html', 'ruby', 'eruby', 'blade', 'php' },
7 | root_dir = util.root_pattern('Gemfile', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://www.npmjs.com/package/stimulus-language-server
12 |
13 | `stimulus-lsp` can be installed via `npm`:
14 |
15 | ```sh
16 | npm install -g stimulus-language-server
17 | ```
18 |
19 | or via `yarn`:
20 |
21 | ```sh
22 | yarn global add stimulus-language-server
23 | ```
24 | ]],
25 | },
26 | }
27 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/stylua3p_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require('lspconfig.util')
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'stylua-3p-language-server' },
6 | filetypes = { 'lua' },
7 | root_dir = util.root_pattern('.stylua.toml', 'stylua.toml'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/antonk52/lua-3p-language-servers
12 |
13 | 3rd party Language Server for Stylua lua formatter
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/svls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'svls' },
4 | filetypes = { 'verilog', 'systemverilog' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/dalance/svls
12 |
13 | Language server for verilog and SystemVerilog
14 |
15 | `svls` can be installed via `cargo`:
16 | ```sh
17 | cargo install svls
18 | ```
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/swift_mesonls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'Swift-MesonLSP', '--lsp' },
6 | filetypes = { 'meson' },
7 | root_dir = util.root_pattern('meson.build', 'meson_options.txt', 'meson.options', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/JCWasmx86/Swift-MesonLSP
12 |
13 | Meson language server written in Swift
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/systemd_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'systemd-language-server' },
4 | filetypes = { 'systemd' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/psacawa/systemd-language-server
13 |
14 | `systemd-language-server` can be installed via `pip`:
15 | ```sh
16 | pip install systemd-language-server
17 | ```
18 |
19 | Language Server for Systemd unit files
20 | ]],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/tabby_ml.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'tabby-agent', '--lsp', '--stdio' },
4 | filetypes = {},
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://tabby.tabbyml.com/blog/running-tabby-as-a-language-server
13 |
14 | Language server for Tabby, an opensource, self-hosted AI coding assistant.
15 |
16 | `tabby-agent` can be installed via `npm`:
17 |
18 | ```sh
19 | npm install --global tabby-agent
20 | ```
21 | ]],
22 | },
23 | }
24 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/taplo.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'taplo', 'lsp', 'stdio' },
4 | filetypes = { 'toml' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://taplo.tamasfe.dev/cli/usage/language-server.html
13 |
14 | Language server for Taplo, a TOML toolkit.
15 |
16 | `taplo-cli` can be installed via `cargo`:
17 | ```sh
18 | cargo install --features lsp --locked taplo-cli
19 | ```
20 | ]],
21 | },
22 | }
23 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/templ.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'templ', 'lsp' },
6 | filetypes = { 'templ' },
7 | root_dir = function(fname)
8 | return util.root_pattern('go.work', 'go.mod', '.git')(fname)
9 | end,
10 | },
11 | docs = {
12 | description = [[
13 | https://templ.guide
14 |
15 | The official language server for the templ HTML templating language.
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/tflint.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'tflint', '--langserver' },
6 | filetypes = { 'terraform' },
7 | root_dir = util.root_pattern('.terraform', '.git', '.tflint.hcl'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/terraform-linters/tflint
12 |
13 | A pluggable Terraform linter that can act as lsp server.
14 | Installation instructions can be found in https://github.com/terraform-linters/tflint#installation.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/thriftls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'thriftls' },
6 | filetypes = { 'thrift' },
7 | root_dir = util.root_pattern '.thrift',
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/joyme123/thrift-ls
13 |
14 | you can install thriftls by mason or download binary here: https://github.com/joyme123/thrift-ls/releases
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/tilt_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'tilt', 'lsp', 'start' },
4 | filetypes = { 'tiltfile' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/tilt-dev/tilt
13 |
14 | Tilt language server.
15 |
16 | You might need to add filetype detection manually:
17 |
18 | ```vim
19 | autocmd BufRead Tiltfile setf=tiltfile
20 | ```
21 | ]],
22 | },
23 | }
24 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/tsp_server.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'tsp-server', '--stdio' },
6 | filetypes = { 'typespec' },
7 | root_dir = util.root_pattern('tspconfig.yaml', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/microsoft/typespec
12 |
13 | The language server for TypeSpec, a language for defining cloud service APIs and shapes.
14 |
15 | `tsp-server` can be installed together with the typespec compiler via `npm`:
16 | ```sh
17 | npm install -g @typespec/compiler
18 | ```
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ttags.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'ttags', 'lsp' },
6 | filetypes = { 'ruby', 'rust', 'javascript', 'haskell' },
7 | root_dir = util.root_pattern '.git',
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/npezza93/ttags
12 | ]],
13 | },
14 | }
15 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/turbo_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'turbo-language-server', '--stdio' },
4 | filetypes = { 'html', 'ruby', 'eruby', 'blade', 'php' },
5 | root_dir = vim.fs.root(0, { 'Gemfile', '.git' }),
6 | },
7 | docs = {
8 | description = [[
9 | https://www.npmjs.com/package/turbo-language-server
10 |
11 | `turbo-language-server` can be installed via `npm`:
12 |
13 | ```sh
14 | npm install -g turbo-language-server
15 | ```
16 |
17 | or via `yarn`:
18 |
19 | ```sh
20 | yarn global add turbo-language-server
21 | ```
22 | ]],
23 | },
24 | }
25 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/twiggy_language_server.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'twiggy-language-server', '--stdio' },
6 | filetypes = { 'twig' },
7 | root_dir = util.root_pattern('composer.json', '.git'),
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/moetelo/twiggy
13 |
14 | `twiggy-language-server` can be installed via `npm`:
15 | ```sh
16 | npm install -g twiggy-language-server
17 | ```
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/typeprof.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'typeprof', '--lsp', '--stdio' },
6 | filetypes = { 'ruby', 'eruby' },
7 | root_dir = util.root_pattern('Gemfile', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/ruby/typeprof
12 |
13 | `typeprof` is the built-in analysis and LSP tool for Ruby 3.1+.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/typst_lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'typst-lsp' },
4 | filetypes = { 'typst' },
5 | single_file_support = true,
6 | root_dir = function(fname)
7 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
8 | end,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/nvarner/typst-lsp
13 |
14 | Language server for Typst.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/uiua.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'uiua', 'lsp' },
6 | filetypes = { 'uiua' },
7 | root_dir = function(fname)
8 | return util.root_pattern('main.ua', '.fmt.ua')(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | },
12 | docs = {
13 | description = [[
14 | https://github.com/uiua-lang/uiua/
15 |
16 | The builtin language server of the Uiua interpreter.
17 |
18 | The Uiua interpreter can be installed with `cargo install uiua`
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/unison.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'nc', 'localhost', os.getenv 'UNISON_LSP_PORT' or '5757' },
6 | filetypes = { 'unison' },
7 | root_dir = util.root_pattern '*.u',
8 | settings = {},
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/unisonweb/unison/blob/trunk/docs/language-server.markdown
13 |
14 |
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/v_analyzer.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'v-analyzer' },
6 | filetypes = { 'v', 'vsh', 'vv' },
7 | root_dir = util.root_pattern('v.mod', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/vlang/v-analyzer
12 |
13 | V language server.
14 |
15 | `v-analyzer` can be installed by following the instructions [here](https://github.com/vlang/v-analyzer#installation).
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/vale_ls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'vale-ls' },
6 | filetypes = { 'markdown', 'text', 'tex', 'rst' },
7 | root_dir = util.root_pattern '.vale.ini',
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/errata-ai/vale-ls
13 |
14 | An implementation of the Language Server Protocol (LSP) for the Vale command-line tool.
15 | ]],
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/vectorcode_server.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'vectorcode-server' },
4 | root_dir = vim.fs.root(0, { '.vectorcode', '.git' }),
5 | single_file_support = false,
6 | settings = {},
7 | },
8 | docs = {
9 | description = [[
10 | https://github.com/Davidyz/VectorCode
11 |
12 | A Language Server Protocol implementation for VectorCode, a code repository indexing tool.
13 | ]],
14 | },
15 | }
16 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/veryl_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'veryl-ls' },
4 | filetypes = { 'veryl' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/veryl-lang/veryl
12 |
13 | Language server for Veryl
14 |
15 | `veryl-ls` can be installed via `cargo`:
16 | ```sh
17 | cargo install veryl-ls
18 | ```
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/vls.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'v', 'ls' },
6 | filetypes = { 'v', 'vlang' },
7 | root_dir = util.root_pattern('v.mod', '.git'),
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/vlang/vls
12 |
13 | V language server.
14 |
15 | `v-language-server` can be installed by following the instructions [here](https://github.com/vlang/vls#installation).
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/vscoqtop.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'vscoqtop' },
6 | filetypes = { 'coq' },
7 | root_dir = function(fname)
8 | return util.root_pattern '_CoqProject'(fname)
9 | or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
10 | end,
11 | single_file_support = true,
12 | },
13 | docs = {
14 | description = [[
15 | https://github.com/coq-community/vscoq
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/wasm_language_tools.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'wat_server' },
4 | filetypes = { 'wat' },
5 | single_file_support = true,
6 | },
7 | docs = {
8 | description = [[
9 | https://github.com/g-plane/wasm-language-tools
10 |
11 | WebAssembly Language Tools aims to provide and improve the editing experience of WebAssembly Text Format.
12 | It also provides an out-of-the-box formatter (a.k.a. pretty printer) for WebAssembly Text Format.
13 | ]],
14 | },
15 | }
16 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/wgsl_analyzer.lua:
--------------------------------------------------------------------------------
1 | local util = require 'lspconfig.util'
2 |
3 | return {
4 | default_config = {
5 | cmd = { 'wgsl-analyzer' },
6 | filetypes = { 'wgsl' },
7 | root_dir = util.root_pattern '.git',
8 | settings = {},
9 | },
10 | docs = {
11 | description = [[
12 | https://github.com/wgsl-analyzer/wgsl-analyzer
13 |
14 | `wgsl-analyzer` can be installed via `cargo`:
15 | ```sh
16 | cargo install --git https://github.com/wgsl-analyzer/wgsl-analyzer wgsl-analyzer
17 | ```
18 | ]],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/yang_lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'yang-language-server' },
4 | filetypes = { 'yang' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | },
9 | docs = {
10 | description = [[
11 | https://github.com/TypeFox/yang-lsp
12 |
13 | A Language Server for the YANG data modeling language.
14 | ]],
15 | },
16 | }
17 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/yls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'yls', '-vv' },
4 | filetypes = { 'yar', 'yara' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://pypi.org/project/yls-yara/
13 |
14 | An YLS plugin adding YARA linting capabilities.
15 |
16 | This plugin runs yara.compile on every save, parses the errors, and returns list of diagnostic messages.
17 |
18 | Language Server: https://github.com/avast/yls
19 | ]],
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ziggy.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'ziggy', 'lsp' },
4 | filetypes = { 'ziggy' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://ziggy-lang.io/documentation/ziggy-lsp/
13 |
14 | Language server for the Ziggy data serialization format
15 |
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/configs/ziggy_schema.lua:
--------------------------------------------------------------------------------
1 | return {
2 | default_config = {
3 | cmd = { 'ziggy', 'lsp', '--schema' },
4 | filetypes = { 'ziggy_schema' },
5 | root_dir = function(fname)
6 | return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])
7 | end,
8 | single_file_support = true,
9 | },
10 | docs = {
11 | description = [[
12 | https://ziggy-lang.io/documentation/ziggy-lsp/
13 |
14 | Language server for schema files of the Ziggy data serialization format
15 |
16 | ]],
17 | },
18 | }
19 |
--------------------------------------------------------------------------------
/lua/lspconfig/ui/windows.lua:
--------------------------------------------------------------------------------
1 | local win_float = {}
2 |
3 | win_float.default_options = {}
4 |
5 | function win_float.default_opts()
6 | return {}
7 | end
8 |
9 | function win_float.percentage_range_window() end
10 |
11 | return win_float
12 |
--------------------------------------------------------------------------------
/neovim.yml:
--------------------------------------------------------------------------------
1 | ---
2 | base: lua51
3 |
4 | globals:
5 | vim:
6 | any: true
7 | assert:
8 | args:
9 | - type: bool
10 | - type: string
11 | required: false
12 | after_each:
13 | args:
14 | - type: function
15 | before_each:
16 | args:
17 | - type: function
18 | describe:
19 | args:
20 | - type: string
21 | - type: function
22 | it:
23 | args:
24 | - type: string
25 | - type: function
26 |
--------------------------------------------------------------------------------
/scripts/docs_template.md:
--------------------------------------------------------------------------------
1 | # LSP configs
2 |
3 | LSP configurations provided by nvim-lspconfig are listed below. This
4 | documentation is autogenerated from the Lua files. You can view this file in
5 | Nvim by running `:help lspconfig-all`.
6 |
7 | {{toc}}
8 |
9 | {{lsp_server_details}}
10 |
--------------------------------------------------------------------------------
/scripts/docs_template.txt:
--------------------------------------------------------------------------------
1 | *lspconfig-all*
2 |
3 | LSP configurations provided by nvim-lspconfig are listed below.
4 |
5 | Type |gO| to see the table of contents.
6 |
7 | ==============================================================================
8 | LSP configs
9 |
10 | {{lsp_server_details}}
11 |
12 | ==============================================================================
13 |
14 | vim:tw=78:ft=help:norl:expandtab:sw=4
15 |
--------------------------------------------------------------------------------
/selene.toml:
--------------------------------------------------------------------------------
1 | std = "neovim"
2 |
3 | [rules]
4 | global_usage = "allow"
5 | multiple_statements = "allow"
6 | incorrect_standard_library_use = "allow"
7 | mixed_table = "allow"
8 |
--------------------------------------------------------------------------------
/test/test_dir/a/a_marker.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/neovim/nvim-lspconfig/8adb3b5938f6074a1bcc36d3c3916f497d2e8ec4/test/test_dir/a/a_marker.txt
--------------------------------------------------------------------------------
/test/test_dir/root_marker.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/neovim/nvim-lspconfig/8adb3b5938f6074a1bcc36d3c3916f497d2e8ec4/test/test_dir/root_marker.txt
--------------------------------------------------------------------------------