diff --git a/plugins/lsp/language-servers/default.nix b/plugins/lsp/language-servers/default.nix index a550880c..2c1c246d 100644 --- a/plugins/lsp/language-servers/default.nix +++ b/plugins/lsp/language-servers/default.nix @@ -591,7 +591,9 @@ let example = false; }; }; - extraConfig = cfg: { filetype.extension = mkIf cfg.autoSetFiletype { v = "vlang"; }; }; + extraConfig = cfg: { + filetype.extension = mkIf (cfg.enable && cfg.autoSetFiletype) { v = "vlang"; }; + }; } { name = "vuels"; diff --git a/tests/test-sources/plugins/lsp/language-servers/vls.nix b/tests/test-sources/plugins/lsp/language-servers/vls.nix new file mode 100644 index 00000000..5b03058a --- /dev/null +++ b/tests/test-sources/plugins/lsp/language-servers/vls.nix @@ -0,0 +1,29 @@ +{ + default = { + plugins.lsp = { + enable = true; + servers.vls.enable = true; + }; + + extraConfigLuaPost = '' + -- V files are recognized by default + assert(vim.filetype.match({ filename = "test.v" }) == "vlang", "V filetype is not recognized") + ''; + }; + + extra-options = { + plugins.lsp = { + enable = true; + + servers.vls = { + enable = true; + autoSetFiletype = true; + }; + }; + + extraConfigLuaPost = '' + -- autoSetFiletype + assert(vim.filetype.match({ filename = "test.v" }) == "vlang", "V filetype is not recognized") + ''; + }; +}