From abb10f097ee83d867e7970e1db7146f621107040 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 27 Nov 2023 13:20:12 +0100 Subject: [PATCH] plugins/lsp: add vls language server --- plugins/lsp/language-servers/default.nix | 8 ++++++ plugins/lsp/language-servers/vls.nix | 28 +++++++++++++++++++++ tests/test-sources/plugins/lsp/nvim-lsp.nix | 1 + 3 files changed, 37 insertions(+) create mode 100644 plugins/lsp/language-servers/vls.nix diff --git a/plugins/lsp/language-servers/default.nix b/plugins/lsp/language-servers/default.nix index f2436168..6adb60a5 100644 --- a/plugins/lsp/language-servers/default.nix +++ b/plugins/lsp/language-servers/default.nix @@ -510,6 +510,13 @@ with lib; let description = "Enable typst-lsp for typst"; package = pkgs.typst-lsp; } + { + name = "vls"; + description = "Enable vls for v"; + # The v language server has to be installed from v and thus is not packaged "as is" in + # nixpkgs. + package = null; + } { name = "vuels"; description = "Enable vuels, for Vue"; @@ -540,5 +547,6 @@ in { ./pylsp.nix ./rust-analyzer.nix ./svelte.nix + ./vls.nix ]; } diff --git a/plugins/lsp/language-servers/vls.nix b/plugins/lsp/language-servers/vls.nix new file mode 100644 index 00000000..5a15f331 --- /dev/null +++ b/plugins/lsp/language-servers/vls.nix @@ -0,0 +1,28 @@ +{ + lib, + config, + ... +}: +with lib; let + cfg = config.plugins.lsp.servers.vls; +in { + options.plugins.lsp.servers.vls = { + autoSetFiletype = mkOption { + type = types.bool; + description = '' + Files with the `.v` extension are not automatically detected as vlang files. + If this option is enabled, Nixvim will automatically set the filetype accordingly. + ''; + default = true; + example = false; + }; + }; + + config = + mkIf cfg.enable + { + filetype.extension = + mkIf cfg.autoSetFiletype + {v = "vlang";}; + }; +} diff --git a/tests/test-sources/plugins/lsp/nvim-lsp.nix b/tests/test-sources/plugins/lsp/nvim-lsp.nix index da057ec2..5ac17695 100644 --- a/tests/test-sources/plugins/lsp/nvim-lsp.nix +++ b/tests/test-sources/plugins/lsp/nvim-lsp.nix @@ -131,6 +131,7 @@ texlab.enable = true; tsserver.enable = true; typst-lsp.enable = true; + vls.enable = true; vuels.enable = true; yamlls.enable = true; zls.enable = true;