mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
plugins/lsp: Use the auto-generated lsp plugin list
This commit is contained in:
parent
c79bfb75da
commit
8e8d9afe8e
11 changed files with 172 additions and 679 deletions
|
@ -1,14 +1,14 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.plugins.none-ls.sources.formatting.prettier;
|
cfg = config.plugins.none-ls.sources.formatting.prettier;
|
||||||
ts-ls-cfg = config.plugins.lsp.servers.ts-ls;
|
ts-ls-cfg = config.plugins.lsp.servers.ts_ls;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.plugins.none-ls.sources.formatting.prettier = {
|
options.plugins.none-ls.sources.formatting.prettier = {
|
||||||
disableTsServerFormatter = lib.mkOption {
|
disableTsServerFormatter = lib.mkOption {
|
||||||
type = with lib.types; nullOr bool;
|
type = with lib.types; nullOr bool;
|
||||||
description = ''
|
description = ''
|
||||||
Disables the formatting capability of the `ts-ls` language server if it is enabled.
|
Disables the formatting capability of the `ts_ls` language server if it is enabled.
|
||||||
'';
|
'';
|
||||||
default = null;
|
default = null;
|
||||||
example = true;
|
example = true;
|
||||||
|
@ -18,14 +18,14 @@ in
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
warnings = lib.optional ((cfg.disableTsServerFormatter == null) && ts-ls-cfg.enable) ''
|
warnings = lib.optional ((cfg.disableTsServerFormatter == null) && ts-ls-cfg.enable) ''
|
||||||
You have enabled the `prettier` formatter in none-ls.
|
You have enabled the `prettier` formatter in none-ls.
|
||||||
You have also enabled the `ts-ls` language server which also brings a formatting feature.
|
You have also enabled the `ts_ls` language server which also brings a formatting feature.
|
||||||
|
|
||||||
- To disable the formatter built-in the `ts-ls` language server, set
|
- To disable the formatter built-in the `ts_ls` language server, set
|
||||||
`plugins.none-ls.sources.formatting.prettier.disableTsServerFormatter` to `true`.
|
`plugins.none-ls.sources.formatting.prettier.disableTsServerFormatter` to `true`.
|
||||||
- Else, to silence this warning, explicitly set the option to `false`.
|
- Else, to silence this warning, explicitly set the option to `false`.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
plugins.lsp.servers.ts-ls =
|
plugins.lsp.servers.ts_ls =
|
||||||
lib.mkIf
|
lib.mkIf
|
||||||
(
|
(
|
||||||
cfg.enable
|
cfg.enable
|
||||||
|
|
|
@ -58,7 +58,8 @@ in
|
||||||
|
|
||||||
cmd = mkOption {
|
cmd = mkOption {
|
||||||
type = with types; nullOr (listOf str);
|
type = with types; nullOr (listOf str);
|
||||||
default = if (cfg.package or null) != null then cmd cfg else null;
|
default =
|
||||||
|
if (cfg.package or null) != null then if builtins.isFunction cmd then cmd cfg else cmd else null;
|
||||||
description = ''
|
description = ''
|
||||||
A list where each entry corresponds to the blankspace delimited part of the command that
|
A list where each entry corresponds to the blankspace delimited part of the command that
|
||||||
launches the server.
|
launches the server.
|
||||||
|
|
39
plugins/lsp/language-servers/_renamed.nix
Normal file
39
plugins/lsp/language-servers/_renamed.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
tsserver = "ts-ls";
|
||||||
|
|
||||||
|
# TODO: Remove after 24.11
|
||||||
|
# Names before the LSP server auto-generation
|
||||||
|
ast-grep = "ast_grep";
|
||||||
|
clojure-lsp = "clojure_lsp";
|
||||||
|
csharp-ls = "csharp_ls";
|
||||||
|
dhall-lsp-server = "dhall_lsp_server";
|
||||||
|
docker-compose-language-service = "docker_compose_language_service";
|
||||||
|
emmet-ls = "emmet_ls";
|
||||||
|
futhark-lsp = "futhark_lsp";
|
||||||
|
golangci-lint-ls = "golangci_lint_ls";
|
||||||
|
harper-ls = "harper_ls";
|
||||||
|
helm-ls = "helm_ls";
|
||||||
|
idris2-lsp = "idris2_lsp";
|
||||||
|
java-language-server = "java_language_server";
|
||||||
|
jdt-language-server = "jdtls";
|
||||||
|
jsonnet-ls = "jsonnet_ls";
|
||||||
|
kotlin-language-server = "kotlin_language_server";
|
||||||
|
lua-ls = "lua_ls";
|
||||||
|
nginx-language-server = "nginx_language_server";
|
||||||
|
nickel-ls = "nickel_ls";
|
||||||
|
nil-ls = "nil_ls";
|
||||||
|
openscad-lsp = "openscad_lsp";
|
||||||
|
pest-ls = "pest_ls";
|
||||||
|
prolog-ls = "prolog_ls";
|
||||||
|
r-language-server = "r_language_server";
|
||||||
|
rnix-lsp = "rnix";
|
||||||
|
ruby-lsp = "ruby_lsp";
|
||||||
|
ruff-lsp = "ruff_lsp";
|
||||||
|
rust-analyzer = "rust_analyzer";
|
||||||
|
slint-lsp = "slint_lsp";
|
||||||
|
ts-ls = "ts_ls";
|
||||||
|
typos-lsp = "typos_lsp";
|
||||||
|
typst-lsp = "typst_lsp";
|
||||||
|
vala-ls = "vala_ls";
|
||||||
|
vhdl-ls = "vhdl_ls";
|
||||||
|
}
|
|
@ -6,197 +6,14 @@
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
servers = [
|
renamedServers = import ./_renamed.nix;
|
||||||
{
|
|
||||||
name = "ansiblels";
|
lspExtraArgs = {
|
||||||
description = "ansiblels for Ansible";
|
dartls = {
|
||||||
package = "ansible-language-server";
|
|
||||||
cmd = cfg: [
|
|
||||||
"${cfg.package}/bin/ansible-language-server"
|
|
||||||
"--stdio"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ast-grep";
|
|
||||||
description = ''
|
|
||||||
ast-grep(sg) is a fast and polyglot tool for code structural search, lint, rewriting at large scale.
|
|
||||||
ast-grep LSP only works in projects that have `sgconfig.y[a]ml` in their root directories.
|
|
||||||
'';
|
|
||||||
serverName = "ast_grep";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "astro";
|
|
||||||
description = "astrols for Astro";
|
|
||||||
package = "astro-language-server";
|
|
||||||
cmd = cfg: [
|
|
||||||
"${cfg.package}/bin/astro-ls"
|
|
||||||
"--stdio"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "basedpyright";
|
|
||||||
description = "basedpyright, a static type checker and language server for python";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "bashls";
|
|
||||||
description = "bashls for bash";
|
|
||||||
package = "bash-language-server";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "beancount";
|
|
||||||
description = "beancount-language-server";
|
|
||||||
package = "beancount-language-server";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "biome";
|
|
||||||
description = "Biome, Toolchain of the Web";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "bufls";
|
|
||||||
description = "Prototype for a Protobuf language server compatible with Buf.";
|
|
||||||
package = "buf-language-server";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ccls";
|
|
||||||
description = "ccls for C/C++";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "clangd";
|
|
||||||
description = "clangd LSP for C/C++";
|
|
||||||
package = "clang-tools";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "clojure-lsp";
|
|
||||||
description = "clojure-lsp for Clojure";
|
|
||||||
serverName = "clojure_lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "cmake";
|
|
||||||
description = "cmake language server";
|
|
||||||
package = "cmake-language-server";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "csharp-ls";
|
|
||||||
description = "csharp-ls for C#";
|
|
||||||
serverName = "csharp_ls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "cssls";
|
|
||||||
description = "cssls for CSS";
|
|
||||||
package = "vscode-langservers-extracted";
|
|
||||||
cmd = cfg: [
|
|
||||||
"${cfg.package}/bin/vscode-css-language-server"
|
|
||||||
"--stdio"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "dagger";
|
|
||||||
description = "dagger for Cuelang";
|
|
||||||
package = "cuelsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "dartls";
|
|
||||||
description = "dart language-server";
|
|
||||||
package = "dart";
|
|
||||||
settingsOptions = import ./dartls-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./dartls-settings.nix { inherit lib helpers; };
|
||||||
settings = cfg: { dart = cfg; };
|
settings = cfg: { dart = cfg; };
|
||||||
}
|
};
|
||||||
{
|
gopls = {
|
||||||
name = "denols";
|
|
||||||
description = "denols for Deno";
|
|
||||||
package = "deno";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "dhall-lsp-server";
|
|
||||||
description = "dhall-lsp-server for Dhall";
|
|
||||||
serverName = "dhall_lsp_server";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "digestif";
|
|
||||||
description = "digestif for LaTeX";
|
|
||||||
# luaPackages.digestif is currently broken, using lua54Packages instead
|
|
||||||
package = [
|
|
||||||
"lua54Packages"
|
|
||||||
"digestif"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "docker-compose-language-service";
|
|
||||||
description = "docker-compose-language-service for Docker Compose";
|
|
||||||
serverName = "docker_compose_language_service";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "dockerls";
|
|
||||||
description = "dockerls for Dockerfile";
|
|
||||||
package = "dockerfile-language-server-nodejs";
|
|
||||||
cmd = cfg: [
|
|
||||||
"${cfg.package}/bin/docker-langserver"
|
|
||||||
"--stdio"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "efm";
|
|
||||||
description = "efm-langserver for misc tools";
|
|
||||||
package = "efm-langserver";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "elmls";
|
|
||||||
description = "elmls for Elm";
|
|
||||||
package = [
|
|
||||||
"elmPackages"
|
|
||||||
"elm-language-server"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "emmet-ls";
|
|
||||||
description = "emmet_ls, emmet support based on LSP";
|
|
||||||
serverName = "emmet_ls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "eslint";
|
|
||||||
package = "vscode-langservers-extracted";
|
|
||||||
cmd = cfg: [
|
|
||||||
"${cfg.package}/bin/vscode-eslint-language-server"
|
|
||||||
"--stdio"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "elixirls";
|
|
||||||
package = "elixir-ls";
|
|
||||||
cmd = cfg: [ "${cfg.package}/bin/elixir-ls" ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "fortls";
|
|
||||||
description = "fortls for Fortran";
|
|
||||||
cmd = cfg: [
|
|
||||||
"${cfg.package}/bin/fortls"
|
|
||||||
"--hover_signature"
|
|
||||||
"--hover_language=fortran"
|
|
||||||
"--use_signature_help"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "fsautocomplete";
|
|
||||||
description = "fsautocomplete for F#";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "futhark-lsp";
|
|
||||||
description = "futhark-lsp for Futhark";
|
|
||||||
package = "futhark";
|
|
||||||
serverName = "futhark_lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "gdscript";
|
|
||||||
description = "gdscript for Godot";
|
|
||||||
package = null;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "gleam";
|
|
||||||
description = "gleam for gleam";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "gopls";
|
|
||||||
description = "gopls for Go";
|
|
||||||
extraOptions = {
|
extraOptions = {
|
||||||
goPackage = lib.mkPackageOption pkgs "go" {
|
goPackage = lib.mkPackageOption pkgs "go" {
|
||||||
nullable = true;
|
nullable = true;
|
||||||
|
@ -205,224 +22,40 @@ let
|
||||||
extraConfig = cfg: {
|
extraConfig = cfg: {
|
||||||
extraPackages = [ cfg.goPackage ];
|
extraPackages = [ cfg.goPackage ];
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
{
|
idris2_lsp = {
|
||||||
name = "golangci-lint-ls";
|
|
||||||
description = "golangci-lint-ls for Go";
|
|
||||||
serverName = "golangci_lint_ls";
|
|
||||||
package = "golangci-lint-langserver";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "graphql";
|
|
||||||
description = "graphql for GraphQL";
|
|
||||||
package = [
|
|
||||||
"nodePackages"
|
|
||||||
"graphql-language-service-cli"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "harper-ls";
|
|
||||||
description = "The Grammar Checker for Developers";
|
|
||||||
serverName = "harper_ls";
|
|
||||||
package = "harper";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "helm-ls";
|
|
||||||
description = "helm_ls for Helm";
|
|
||||||
serverName = "helm_ls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "hls";
|
|
||||||
description = "haskell language server";
|
|
||||||
package = "haskell-language-server";
|
|
||||||
cmd = cfg: [
|
|
||||||
"haskell-language-server-wrapper"
|
|
||||||
"--lsp"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "html";
|
|
||||||
description = "HTML language server from `vscode-langservers-extracted`";
|
|
||||||
package = "vscode-langservers-extracted";
|
|
||||||
cmd = cfg: [
|
|
||||||
"${cfg.package}/bin/vscode-html-language-server"
|
|
||||||
"--stdio"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "htmx";
|
|
||||||
description = "htmx for HTMX";
|
|
||||||
package = "htmx-lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "idris2-lsp";
|
|
||||||
description = ''
|
|
||||||
Idris 2 Language Server.
|
|
||||||
Enabling this also enables the required `idris2` plugin.
|
|
||||||
'';
|
|
||||||
serverName = "idris2_lsp";
|
|
||||||
package = [
|
|
||||||
"idris2Packages"
|
|
||||||
"idris2Lsp"
|
|
||||||
];
|
|
||||||
extraConfig =
|
extraConfig =
|
||||||
cfg:
|
cfg:
|
||||||
mkIf cfg.enable {
|
mkIf cfg.enable {
|
||||||
plugins.idris2.enable = lib.mkDefault true;
|
plugins.idris2.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
{
|
jsonls = {
|
||||||
name = "intelephense";
|
|
||||||
description = "intelephense for PHP";
|
|
||||||
package = [
|
|
||||||
"nodePackages"
|
|
||||||
"intelephense"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "java-language-server";
|
|
||||||
description = "Java language server";
|
|
||||||
serverName = "java_language_server";
|
|
||||||
cmd = cfg: [ "${cfg.package}/bin/java-language-server" ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "jdt-language-server";
|
|
||||||
description = "Eclipse JDT Language Server for Java";
|
|
||||||
serverName = "jdtls";
|
|
||||||
cmd = cfg: [ (lib.getExe cfg.package) ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "jsonls";
|
|
||||||
description = "jsonls for JSON";
|
|
||||||
package = "vscode-langservers-extracted";
|
|
||||||
cmd = cfg: [
|
|
||||||
"${cfg.package}/bin/vscode-json-language-server"
|
|
||||||
"--stdio"
|
|
||||||
];
|
|
||||||
settings = cfg: { json = cfg; };
|
settings = cfg: { json = cfg; };
|
||||||
}
|
};
|
||||||
{
|
jsonnet_ls = {
|
||||||
name = "jsonnet-ls";
|
|
||||||
description = "jsonnet language server";
|
|
||||||
package = "jsonnet-language-server";
|
|
||||||
serverName = "jsonnet_ls";
|
|
||||||
settingsOptions = import ./jsonnet-ls-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./jsonnet-ls-settings.nix { inherit lib helpers; };
|
||||||
}
|
};
|
||||||
{
|
ltex = {
|
||||||
name = "julials";
|
|
||||||
description = "julials for Julia";
|
|
||||||
# The julia language server has to be installed from julia and thus is not packaged "as is" in
|
|
||||||
# nixpkgs.
|
|
||||||
package = null;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "kotlin-language-server";
|
|
||||||
description = "Kotlin language server";
|
|
||||||
serverName = "kotlin_language_server";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "leanls";
|
|
||||||
description = "leanls for Lean";
|
|
||||||
package = "lean4";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "lemminx";
|
|
||||||
description = "lemminx for XML";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "lexical";
|
|
||||||
description = "lexical for Elixir";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ltex";
|
|
||||||
description = "ltex-ls for LanguageTool";
|
|
||||||
package = "ltex-ls";
|
|
||||||
settingsOptions = import ./ltex-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./ltex-settings.nix { inherit lib helpers; };
|
||||||
settings = cfg: { ltex = cfg; };
|
settings = cfg: { ltex = cfg; };
|
||||||
}
|
};
|
||||||
{
|
lua_ls = {
|
||||||
name = "lua-ls";
|
|
||||||
description = "lua-ls for Lua";
|
|
||||||
package = "lua-language-server";
|
|
||||||
serverName = "lua_ls";
|
|
||||||
settingsOptions = import ./lua-ls-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./lua-ls-settings.nix { inherit lib helpers; };
|
||||||
settings = cfg: { Lua = cfg; };
|
settings = cfg: { Lua = cfg; };
|
||||||
}
|
};
|
||||||
{
|
nil_ls = {
|
||||||
name = "marksman";
|
|
||||||
description = "marksman for Markdown";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "metals";
|
|
||||||
description = "metals for Scala";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "nextls";
|
|
||||||
description = "The language server for Elixir that just works.";
|
|
||||||
package = "next-ls";
|
|
||||||
cmd = cfg: [
|
|
||||||
"nextls"
|
|
||||||
"--stdio"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "nginx-language-server";
|
|
||||||
description = "nginx-language-server for `nginx.conf`";
|
|
||||||
serverName = "nginx_language_server";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "nickel-ls";
|
|
||||||
description = "nls for Nickel";
|
|
||||||
package = "nls";
|
|
||||||
serverName = "nickel_ls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "nil-ls";
|
|
||||||
description = "nil for Nix";
|
|
||||||
package = "nil";
|
|
||||||
serverName = "nil_ls";
|
|
||||||
settingsOptions = import ./nil-ls-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./nil-ls-settings.nix { inherit lib helpers; };
|
||||||
settings = cfg: { nil = cfg; };
|
settings = cfg: { nil = cfg; };
|
||||||
}
|
};
|
||||||
{
|
nixd = {
|
||||||
name = "nimls";
|
|
||||||
description = "nimls for Nim";
|
|
||||||
package = "nimlsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "nixd";
|
|
||||||
description = "nixd for Nix";
|
|
||||||
settings = cfg: { nixd = cfg; };
|
settings = cfg: { nixd = cfg; };
|
||||||
settingsOptions = import ./nixd-settings.nix { inherit lib helpers; };
|
settingsOptions = import ./nixd-settings.nix { inherit lib helpers; };
|
||||||
extraConfig = cfg: {
|
extraConfig = cfg: {
|
||||||
extraPackages = optional (cfg.settings.formatting.command == [ "nixpkgs-fmt" ]) pkgs.nixpkgs-fmt;
|
extraPackages = optional (cfg.settings.formatting.command == [ "nixpkgs-fmt" ]) pkgs.nixpkgs-fmt;
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
{
|
omnisharp = {
|
||||||
name = "nushell";
|
|
||||||
description = "Nushell language server";
|
|
||||||
cmd = cfg: [
|
|
||||||
"${cfg.package}/bin/nu"
|
|
||||||
"--lsp"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ocamllsp";
|
|
||||||
description = "ocamllsp for OCaml";
|
|
||||||
package = [
|
|
||||||
"ocamlPackages"
|
|
||||||
"ocaml-lsp"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ols";
|
|
||||||
description = "ols for the Odin programming language";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "omnisharp";
|
|
||||||
description = "OmniSharp language server for C#";
|
|
||||||
package = "omnisharp-roslyn";
|
|
||||||
cmd = cfg: [ "${cfg.package}/bin/OmniSharp" ];
|
|
||||||
settings = cfg: { omnisharp = cfg; };
|
settings = cfg: { omnisharp = cfg; };
|
||||||
settingsOptions = {
|
settingsOptions = {
|
||||||
enableEditorConfigSupport = helpers.defaultNullOpts.mkBool true ''
|
enableEditorConfigSupport = helpers.defaultNullOpts.mkBool true ''
|
||||||
|
@ -471,180 +104,19 @@ let
|
||||||
Only run analyzers against open files when 'enableRoslynAnalyzers' is true.
|
Only run analyzers against open files when 'enableRoslynAnalyzers' is true.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
{
|
pylsp = {
|
||||||
name = "openscad-lsp";
|
|
||||||
description = "A Language Server Protocol server for OpenSCAD";
|
|
||||||
serverName = "openscad_lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "perlpls";
|
|
||||||
description = "PLS for Perl";
|
|
||||||
package = [
|
|
||||||
"perlPackages"
|
|
||||||
"PLS"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "pest-ls";
|
|
||||||
description = "pest_ls for pest";
|
|
||||||
package = "pest-ide-tools";
|
|
||||||
serverName = "pest_ls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "phpactor";
|
|
||||||
description = "phpactor for PHP";
|
|
||||||
package = "phpactor";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "prismals";
|
|
||||||
description = "prismals for Prisma";
|
|
||||||
package = [
|
|
||||||
"nodePackages"
|
|
||||||
"@prisma/language-server"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "prolog-ls";
|
|
||||||
description = "prolog_ls for SWI-Prolog";
|
|
||||||
serverName = "prolog_ls";
|
|
||||||
package = "swi-prolog";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "purescriptls";
|
|
||||||
description = "purescriptls for PureScript";
|
|
||||||
package = [
|
|
||||||
"nodePackages"
|
|
||||||
"purescript-language-server"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "pylsp";
|
|
||||||
description = "pylsp for Python";
|
|
||||||
package = [
|
|
||||||
"python3Packages"
|
|
||||||
"python-lsp-server"
|
|
||||||
];
|
|
||||||
settings = cfg: { pylsp = cfg; };
|
settings = cfg: { pylsp = cfg; };
|
||||||
}
|
};
|
||||||
{
|
rust_analyzer = {
|
||||||
name = "pylyzer";
|
|
||||||
description = "pylyzer for Python";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "pyright";
|
|
||||||
description = "pyright for Python";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "r-language-server";
|
|
||||||
description = "languageserver for R";
|
|
||||||
package = [
|
|
||||||
"rPackages"
|
|
||||||
"languageserver"
|
|
||||||
];
|
|
||||||
serverName = "r_language_server";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "rnix-lsp";
|
|
||||||
description = "rnix LSP for Nix";
|
|
||||||
serverName = "rnix";
|
|
||||||
package = null;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ruby-lsp";
|
|
||||||
description = "ruby-lsp for Ruby";
|
|
||||||
serverName = "ruby_lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ruff";
|
|
||||||
description = "Official ruff language server (Rust) for Python";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ruff-lsp";
|
|
||||||
description = "ruff-lsp, for Python";
|
|
||||||
serverName = "ruff_lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "rust-analyzer";
|
|
||||||
description = "rust-analyzer for Rust";
|
|
||||||
serverName = "rust_analyzer";
|
|
||||||
|
|
||||||
settingsOptions = import ./rust-analyzer-config.nix lib helpers;
|
settingsOptions = import ./rust-analyzer-config.nix lib helpers;
|
||||||
settings = cfg: { rust-analyzer = cfg; };
|
settings = cfg: { rust-analyzer = cfg; };
|
||||||
}
|
};
|
||||||
{
|
ts_ls = {
|
||||||
name = "slint-lsp";
|
|
||||||
description = "slint_lsp for Slint GUI language";
|
|
||||||
serverName = "slint_lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "solargraph";
|
|
||||||
description = "solargraph for Ruby";
|
|
||||||
package = [
|
|
||||||
"rubyPackages"
|
|
||||||
"solargraph"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "sourcekit";
|
|
||||||
description = "sourcekit language server for Swift and C/C++/Objective-C";
|
|
||||||
package = "sourcekit-lsp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "sqls";
|
|
||||||
description = "sqls for SQL";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "svelte";
|
|
||||||
description = "svelte language server for Svelte";
|
|
||||||
package = [
|
|
||||||
"nodePackages"
|
|
||||||
"svelte-language-server"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "tailwindcss";
|
|
||||||
description = "tailwindcss language server for tailwindcss";
|
|
||||||
package = [
|
|
||||||
"nodePackages"
|
|
||||||
"@tailwindcss/language-server"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "taplo";
|
|
||||||
description = "taplo for TOML";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "templ";
|
|
||||||
description = "templ language server for the templ HTML templating language";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "terraformls";
|
|
||||||
description = "terraform-ls for terraform";
|
|
||||||
package = "terraform-ls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "texlab";
|
|
||||||
description = "texlab language server for LaTeX";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "tflint";
|
|
||||||
description = "tflint, a terraform linter";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "tinymist";
|
|
||||||
description = "tinymist for Typst";
|
|
||||||
settingsOptions = import ./tinymist-settings.nix { inherit lib helpers; };
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ts-ls";
|
|
||||||
serverName = "ts_ls";
|
|
||||||
description = "ts_ls for TypeScript";
|
|
||||||
package = "typescript-language-server";
|
|
||||||
# NOTE: Provide the plugin default filetypes so that
|
# NOTE: Provide the plugin default filetypes so that
|
||||||
# `plugins.lsp.servers.volar.tslsIntegration` doesn't wipe out the default filetypes
|
# `plugins.lsp.servers.volar.tslsIntegration` doesn't wipe out the default filetypes
|
||||||
extraConfig = cfg: {
|
extraConfig = cfg: {
|
||||||
plugins.lsp.servers.ts-ls = {
|
plugins.lsp.servers.ts_ls = {
|
||||||
filetypes = [
|
filetypes = [
|
||||||
"javascript"
|
"javascript"
|
||||||
"javascriptreact"
|
"javascriptreact"
|
||||||
|
@ -655,34 +127,8 @@ let
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
{
|
vls = {
|
||||||
name = "typos-lsp";
|
|
||||||
serverName = "typos_lsp";
|
|
||||||
description = "Source code spell checker for Visual Studio Code and LSP clients";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "typst-lsp";
|
|
||||||
serverName = "typst_lsp";
|
|
||||||
description = "typst-lsp for typst";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vala-ls";
|
|
||||||
description = "vala_ls for Vala";
|
|
||||||
serverName = "vala_ls";
|
|
||||||
package = "vala-language-server";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vhdl-ls";
|
|
||||||
description = "vhdl_ls for VHDL";
|
|
||||||
serverName = "vhdl_ls";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vls";
|
|
||||||
description = "vls for V";
|
|
||||||
# The v language server has to be installed from v and thus is not packaged "as is" in
|
|
||||||
# nixpkgs.
|
|
||||||
package = null;
|
|
||||||
extraOptions = {
|
extraOptions = {
|
||||||
autoSetFiletype = mkOption {
|
autoSetFiletype = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
@ -697,22 +143,8 @@ let
|
||||||
extraConfig = cfg: {
|
extraConfig = cfg: {
|
||||||
filetype.extension = mkIf (cfg.enable && cfg.autoSetFiletype) { v = "vlang"; };
|
filetype.extension = mkIf (cfg.enable && cfg.autoSetFiletype) { v = "vlang"; };
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
{
|
volar = {
|
||||||
name = "vuels";
|
|
||||||
description = "vuels for Vue";
|
|
||||||
package = [
|
|
||||||
"nodePackages"
|
|
||||||
"vls"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "volar";
|
|
||||||
description = "@volar/vue-language-server for Vue";
|
|
||||||
package = [
|
|
||||||
"nodePackages"
|
|
||||||
"@volar/vue-language-server"
|
|
||||||
];
|
|
||||||
extraOptions = {
|
extraOptions = {
|
||||||
tslsIntegration = mkOption {
|
tslsIntegration = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
@ -724,7 +156,7 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
extraConfig = cfg: {
|
extraConfig = cfg: {
|
||||||
plugins.lsp.servers.ts-ls = lib.mkIf (cfg.enable && cfg.tslsIntegration) {
|
plugins.lsp.servers.ts_ls = lib.mkIf (cfg.enable && cfg.tslsIntegration) {
|
||||||
filetypes = [ "vue" ];
|
filetypes = [ "vue" ];
|
||||||
extraOptions = {
|
extraOptions = {
|
||||||
init_options = {
|
init_options = {
|
||||||
|
@ -739,27 +171,48 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
{
|
yamlls = {
|
||||||
name = "yamlls";
|
|
||||||
description = "yamlls for YAML";
|
|
||||||
package = "yaml-language-server";
|
|
||||||
settings = cfg: { yaml = cfg; };
|
settings = cfg: { yaml = cfg; };
|
||||||
}
|
};
|
||||||
{
|
|
||||||
name = "zls";
|
|
||||||
description = "zls for Zig";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
renamedServers = {
|
|
||||||
tsserver = "ts-ls";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lspPackages = import ../lsp-packages.nix;
|
||||||
|
|
||||||
|
getLspPackage =
|
||||||
|
name:
|
||||||
|
if lib.hasAttr name lspPackages.packages then
|
||||||
|
{ package = lspPackages.packages.${name}; }
|
||||||
|
else if lib.hasAttr name lspPackages.customCmd then
|
||||||
|
{ inherit (lspPackages.customCmd.${name}) package cmd; }
|
||||||
|
else
|
||||||
|
assert lib.assertMsg (lib.elem name lspPackages.unpackaged) "LSP server ${name} is unknown";
|
||||||
|
{
|
||||||
|
package = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
generatedServers = lib.pipe ../../../generated/lspconfig-servers.json [
|
||||||
|
lib.importJSON
|
||||||
|
(lib.map (
|
||||||
|
{
|
||||||
|
name,
|
||||||
|
desc ? "${name} language server",
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
inherit name;
|
||||||
|
description = desc;
|
||||||
|
}
|
||||||
|
// (getLspPackage name)
|
||||||
|
// (lspExtraArgs.${name} or { })
|
||||||
|
))
|
||||||
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
let
|
let
|
||||||
mkLsp = import ./_mk-lsp.nix;
|
mkLsp = import ./_mk-lsp.nix;
|
||||||
lspModules = map mkLsp servers;
|
lspModules = map mkLsp generatedServers;
|
||||||
baseLspPath = [
|
baseLspPath = [
|
||||||
"plugins"
|
"plugins"
|
||||||
"lsp"
|
"lsp"
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.plugins.lsp.servers.rust-analyzer;
|
cfg = config.plugins.lsp.servers.rust_analyzer;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.plugins.lsp.servers.rust-analyzer = {
|
options.plugins.lsp.servers.rust_analyzer = {
|
||||||
# https://github.com/nix-community/nixvim/issues/674
|
# https://github.com/nix-community/nixvim/issues/674
|
||||||
installCargo = mkOption {
|
installCargo = mkOption {
|
||||||
type = with types; nullOr bool;
|
type = with types; nullOr bool;
|
||||||
|
@ -35,21 +35,21 @@ in
|
||||||
warnings =
|
warnings =
|
||||||
(optional (cfg.installCargo == null) ''
|
(optional (cfg.installCargo == null) ''
|
||||||
`rust_analyzer` relies on `cargo`.
|
`rust_analyzer` relies on `cargo`.
|
||||||
- Set `plugins.lsp.servers.rust-analyzer.installCargo = true` to install it automatically
|
- Set `plugins.lsp.servers.rust_analyzer.installCargo = true` to install it automatically
|
||||||
with Nixvim.
|
with Nixvim.
|
||||||
You can customize which package to install by changing
|
You can customize which package to install by changing
|
||||||
`plugins.lsp.servers.rust-analyzer.cargoPackage`.
|
`plugins.lsp.servers.rust_analyzer.cargoPackage`.
|
||||||
- Set `plugins.lsp.servers.rust-analyzer.installCargo = false` to not have it install
|
- Set `plugins.lsp.servers.rust_analyzer.installCargo = false` to not have it install
|
||||||
through Nixvim.
|
through Nixvim.
|
||||||
By doing so, you will dismiss this warning.
|
By doing so, you will dismiss this warning.
|
||||||
'')
|
'')
|
||||||
++ (optional (cfg.installRustc == null) ''
|
++ (optional (cfg.installRustc == null) ''
|
||||||
`rust_analyzer` relies on `rustc`.
|
`rust_analyzer` relies on `rustc`.
|
||||||
- Set `plugins.lsp.servers.rust-analyzer.installRustc = true` to install it automatically
|
- Set `plugins.lsp.servers.rust_analyzer.installRustc = true` to install it automatically
|
||||||
with Nixvim.
|
with Nixvim.
|
||||||
You can customize which package to install by changing
|
You can customize which package to install by changing
|
||||||
`plugins.lsp.servers.rust-analyzer.rustcPackage`.
|
`plugins.lsp.servers.rust_analyzer.rustcPackage`.
|
||||||
- Set `plugins.lsp.servers.rust-analyzer.installRustc = false` to not have it install
|
- Set `plugins.lsp.servers.rust_analyzer.installRustc = false` to not have it install
|
||||||
through Nixvim.
|
through Nixvim.
|
||||||
By doing so, you will dismiss this warning.
|
By doing so, you will dismiss this warning.
|
||||||
'');
|
'');
|
||||||
|
|
|
@ -9,7 +9,7 @@ pkgs.lib.optionalAttrs
|
||||||
|
|
||||||
servers = {
|
servers = {
|
||||||
ansiblels.enable = true;
|
ansiblels.enable = true;
|
||||||
ast-grep.enable = true;
|
ast_grep.enable = true;
|
||||||
astro.enable = true;
|
astro.enable = true;
|
||||||
basedpyright.enable = true;
|
basedpyright.enable = true;
|
||||||
bashls.enable = true;
|
bashls.enable = true;
|
||||||
|
@ -18,53 +18,53 @@ pkgs.lib.optionalAttrs
|
||||||
bufls.enable = true;
|
bufls.enable = true;
|
||||||
ccls.enable = true;
|
ccls.enable = true;
|
||||||
clangd.enable = true;
|
clangd.enable = true;
|
||||||
clojure-lsp.enable = true;
|
clojure_lsp.enable = true;
|
||||||
cmake.enable = true;
|
cmake.enable = true;
|
||||||
csharp-ls.enable = true;
|
csharp_ls.enable = true;
|
||||||
cssls.enable = true;
|
cssls.enable = true;
|
||||||
dagger.enable = true;
|
dagger.enable = true;
|
||||||
dartls.enable = true;
|
dartls.enable = true;
|
||||||
denols.enable = true;
|
denols.enable = true;
|
||||||
dhall-lsp-server.enable = true;
|
dhall_lsp_server.enable = true;
|
||||||
digestif.enable = true;
|
digestif.enable = true;
|
||||||
docker-compose-language-service.enable = true;
|
docker_compose_language_service.enable = true;
|
||||||
dockerls.enable = true;
|
dockerls.enable = true;
|
||||||
efm.enable = true;
|
efm.enable = true;
|
||||||
elmls.enable = true;
|
elmls.enable = true;
|
||||||
emmet-ls.enable = true;
|
emmet_ls.enable = true;
|
||||||
eslint.enable = true;
|
eslint.enable = true;
|
||||||
elixirls.enable = true;
|
elixirls.enable = true;
|
||||||
fortls.enable = true;
|
fortls.enable = true;
|
||||||
# pkgs.fsautocomplete only supports linux platforms
|
# pkgs.fsautocomplete only supports linux platforms
|
||||||
fsautocomplete.enable = pkgs.stdenv.isLinux;
|
fsautocomplete.enable = pkgs.stdenv.isLinux;
|
||||||
futhark-lsp.enable = true;
|
futhark_lsp.enable = true;
|
||||||
gleam.enable = true;
|
gleam.enable = true;
|
||||||
gopls.enable = true;
|
gopls.enable = true;
|
||||||
golangci-lint-ls.enable = true;
|
golangci_lint_ls.enable = true;
|
||||||
graphql.enable = true;
|
graphql.enable = true;
|
||||||
harper-ls.enable = true;
|
harper_ls.enable = true;
|
||||||
helm-ls.enable = true;
|
helm_ls.enable = true;
|
||||||
hls.enable = true;
|
hls.enable = true;
|
||||||
html.enable = true;
|
html.enable = true;
|
||||||
htmx.enable = true;
|
htmx.enable = true;
|
||||||
idris2-lsp.enable = true;
|
idris2_lsp.enable = true;
|
||||||
java-language-server.enable = true;
|
java_language_server.enable = true;
|
||||||
jdt-language-server.enable = true;
|
jdtls.enable = true;
|
||||||
jsonls.enable = true;
|
jsonls.enable = true;
|
||||||
jsonnet-ls.enable = true;
|
jsonnet_ls.enable = true;
|
||||||
julials.enable = true;
|
julials.enable = true;
|
||||||
kotlin-language-server.enable = true;
|
kotlin_language_server.enable = true;
|
||||||
leanls.enable = true;
|
leanls.enable = true;
|
||||||
lemminx.enable = true;
|
lemminx.enable = true;
|
||||||
lexical.enable = true;
|
lexical.enable = true;
|
||||||
ltex.enable = true;
|
ltex.enable = true;
|
||||||
lua-ls.enable = true;
|
lua_ls.enable = true;
|
||||||
marksman.enable = true;
|
marksman.enable = true;
|
||||||
metals.enable = true;
|
metals.enable = true;
|
||||||
nextls.enable = true;
|
nextls.enable = true;
|
||||||
nginx-language-server.enable = true;
|
nginx_language_server.enable = true;
|
||||||
nickel-ls.enable = true;
|
nickel_ls.enable = true;
|
||||||
nil-ls.enable = true;
|
nil_ls.enable = true;
|
||||||
nimls.enable = true;
|
nimls.enable = true;
|
||||||
nixd.enable = true;
|
nixd.enable = true;
|
||||||
nushell.enable = true;
|
nushell.enable = true;
|
||||||
|
@ -73,25 +73,25 @@ pkgs.lib.optionalAttrs
|
||||||
# ols is not supported on aarch64-linux
|
# ols is not supported on aarch64-linux
|
||||||
pkgs.stdenv.hostPlatform.system != "aarch64-linux";
|
pkgs.stdenv.hostPlatform.system != "aarch64-linux";
|
||||||
omnisharp.enable = true;
|
omnisharp.enable = true;
|
||||||
openscad-lsp.enable = true;
|
openscad_lsp.enable = true;
|
||||||
perlpls.enable = true;
|
perlpls.enable = true;
|
||||||
pest-ls.enable = true;
|
pest_ls.enable = true;
|
||||||
prismals.enable = true;
|
prismals.enable = true;
|
||||||
prolog-ls.enable = true;
|
prolog_ls.enable = true;
|
||||||
purescriptls.enable = true;
|
purescriptls.enable = true;
|
||||||
pylsp.enable = true;
|
pylsp.enable = true;
|
||||||
pylyzer.enable = true;
|
pylyzer.enable = true;
|
||||||
pyright.enable = true;
|
pyright.enable = true;
|
||||||
r-language-server.enable = true;
|
r_language_server.enable = true;
|
||||||
ruby-lsp.enable = true;
|
ruby_lsp.enable = true;
|
||||||
ruff.enable = true;
|
ruff.enable = true;
|
||||||
ruff-lsp.enable = true;
|
ruff_lsp.enable = true;
|
||||||
rust-analyzer = {
|
rust_analyzer = {
|
||||||
enable = true;
|
enable = true;
|
||||||
installCargo = true;
|
installCargo = true;
|
||||||
installRustc = true;
|
installRustc = true;
|
||||||
};
|
};
|
||||||
slint-lsp.enable = true;
|
slint_lsp.enable = true;
|
||||||
solargraph.enable = true;
|
solargraph.enable = true;
|
||||||
# As of 2024-09-13, sourcekit-lsp is broken due to swift dependency
|
# As of 2024-09-13, sourcekit-lsp is broken due to swift dependency
|
||||||
# TODO: re-enable this test when fixed
|
# TODO: re-enable this test when fixed
|
||||||
|
@ -105,11 +105,11 @@ pkgs.lib.optionalAttrs
|
||||||
texlab.enable = true;
|
texlab.enable = true;
|
||||||
tflint.enable = true;
|
tflint.enable = true;
|
||||||
tinymist.enable = true;
|
tinymist.enable = true;
|
||||||
ts-ls.enable = true;
|
ts_ls.enable = true;
|
||||||
typos-lsp.enable = true;
|
typos_lsp.enable = true;
|
||||||
typst-lsp.enable = true;
|
typst_lsp.enable = true;
|
||||||
vala-ls.enable = true;
|
vala_ls.enable = true;
|
||||||
vhdl-ls.enable = true;
|
vhdl_ls.enable = true;
|
||||||
vls.enable = true;
|
vls.enable = true;
|
||||||
vuels.enable = true;
|
vuels.enable = true;
|
||||||
yamlls.enable = true;
|
yamlls.enable = true;
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
servers = {
|
servers = {
|
||||||
rust-analyzer = {
|
rust_analyzer = {
|
||||||
enable = true;
|
enable = true;
|
||||||
installCargo = true;
|
installCargo = true;
|
||||||
installRustc = true;
|
installRustc = true;
|
||||||
|
@ -84,7 +84,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
servers = {
|
servers = {
|
||||||
nixd.enable = true;
|
nixd.enable = true;
|
||||||
rust-analyzer = {
|
rust_analyzer = {
|
||||||
enable = true;
|
enable = true;
|
||||||
installCargo = true;
|
installCargo = true;
|
||||||
installRustc = true;
|
installRustc = true;
|
||||||
|
|
|
@ -67,13 +67,13 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
package = null;
|
package = null;
|
||||||
};
|
};
|
||||||
nil-ls.enable = true;
|
nil_ls.enable = true;
|
||||||
rust-analyzer = {
|
rust_analyzer = {
|
||||||
enable = true;
|
enable = true;
|
||||||
installCargo = true;
|
installCargo = true;
|
||||||
installRustc = true;
|
installRustc = true;
|
||||||
};
|
};
|
||||||
ruff-lsp = {
|
ruff_lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraOptions = {
|
extraOptions = {
|
||||||
init_options.settings.args = [ "--config=/path/to/config.toml" ];
|
init_options.settings.args = [ "--config=/path/to/config.toml" ];
|
||||||
|
@ -102,7 +102,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
servers = {
|
servers = {
|
||||||
volar.enable = true;
|
volar.enable = true;
|
||||||
ts-ls = {
|
ts_ls = {
|
||||||
enable = true;
|
enable = true;
|
||||||
filetypes = [ "typescript" ];
|
filetypes = [ "typescript" ];
|
||||||
};
|
};
|
||||||
|
@ -111,17 +111,17 @@
|
||||||
|
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = lib.any (x: x == "vue") config.plugins.lsp.servers.ts-ls.filetypes;
|
assertion = lib.any (x: x == "vue") config.plugins.lsp.servers.ts_ls.filetypes;
|
||||||
message = "Expected `vue` filetype configuration.";
|
message = "Expected `vue` filetype configuration.";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
assertion = lib.any (
|
assertion = lib.any (
|
||||||
x: x.name == "@vue/typescript-plugin"
|
x: x.name == "@vue/typescript-plugin"
|
||||||
) config.plugins.lsp.servers.ts-ls.extraOptions.init_options.plugins;
|
) config.plugins.lsp.servers.ts_ls.extraOptions.init_options.plugins;
|
||||||
message = "Expected `@vue/typescript-plugin` plugin.";
|
message = "Expected `@vue/typescript-plugin` plugin.";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
assertion = lib.any (x: x == "typescript") config.plugins.lsp.servers.ts-ls.filetypes;
|
assertion = lib.any (x: x == "typescript") config.plugins.lsp.servers.ts_ls.filetypes;
|
||||||
message = "Expected `typescript` filetype configuration.";
|
message = "Expected `typescript` filetype configuration.";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
plugins.lsp = {
|
plugins.lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
servers = {
|
servers = {
|
||||||
ts-ls = {
|
ts_ls = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -141,17 +141,17 @@
|
||||||
|
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = lib.all (x: x != "vue") config.plugins.lsp.servers.ts-ls.filetypes;
|
assertion = lib.all (x: x != "vue") config.plugins.lsp.servers.ts_ls.filetypes;
|
||||||
message = "Did not expect `vue` filetype configuration.";
|
message = "Did not expect `vue` filetype configuration.";
|
||||||
}
|
}
|
||||||
(lib.mkIf (config.plugins.lsp.servers.ts-ls.extraOptions ? init_options) {
|
(lib.mkIf (config.plugins.lsp.servers.ts_ls.extraOptions ? init_options) {
|
||||||
assertion = lib.all (
|
assertion = lib.all (
|
||||||
x: x.name != "@vue/typescript-plugin"
|
x: x.name != "@vue/typescript-plugin"
|
||||||
) config.plugins.lsp.servers.ts-ls.extraOptions.init_options.plugins;
|
) config.plugins.lsp.servers.ts_ls.extraOptions.init_options.plugins;
|
||||||
message = "Did not expect `@vue/typescript-plugin` plugin.";
|
message = "Did not expect `@vue/typescript-plugin` plugin.";
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
assertion = lib.any (x: x == "typescript") config.plugins.lsp.servers.ts-ls.filetypes;
|
assertion = lib.any (x: x == "typescript") config.plugins.lsp.servers.ts_ls.filetypes;
|
||||||
message = "Expected `typescript` filetype configuration.";
|
message = "Expected `typescript` filetype configuration.";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
plugins.lsp = {
|
plugins.lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
servers.jsonnet-ls = {
|
servers.jsonnet_ls = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
plugins.lsp = {
|
plugins.lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
servers.lua-ls = {
|
servers.lua_ls = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
plugins.lsp = {
|
plugins.lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
servers.nil-ls = {
|
servers.nil_ls = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue