diff --git a/lib/languages.nix b/lib/languages.nix index c4074144..c4709442 100644 --- a/lib/languages.nix +++ b/lib/languages.nix @@ -1,7 +1,7 @@ {lib}: let inherit (builtins) isString getAttr; inherit (lib.options) mkOption; - inherit (lib.types) listOf bool str submodule attrsOf anything either nullOr; + inherit (lib.types) listOf bool str submodule attrsOf anything either nullOr oneOf; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.types) luaInline; in { @@ -62,7 +62,7 @@ in { }; cmd = mkOption { - type = nullOr (listOf str); + type = nullOr (listOf (oneOf [str luaInline])); default = null; description = "Command used to start the LSP server"; }; diff --git a/modules/neovim/init/lsp.nix b/modules/neovim/init/lsp.nix index 712f88f9..0bc2dea8 100644 --- a/modules/neovim/init/lsp.nix +++ b/modules/neovim/init/lsp.nix @@ -11,7 +11,7 @@ inherit (lib.attrsets) mapAttrsToList attrNames filterAttrs; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.languages) lspOptions; - inherit (lib.nvim.dag) entryAfter; + inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.lua) toLuaObject; cfg = config.vim.lsp; @@ -82,8 +82,7 @@ in { (mkIf (cfg.servers != {}) { # Enable lspconfig in order to merge in the predefined opts - vim.lsp.lspconfig.enable = true; - vim.luaConfigRC.lsp-servers = entryAfter ["lspconfig"] '' + vim.luaConfigRC.lsp-servers = entryAnywhere '' -- Individual LSP configurations managed by nvf. ${concatLines lspConfigurations} diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 32c16240..5750d544 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -20,7 +20,9 @@ servers = { marksman = { enable = true; - cmd = ["${pkgs.marksman}/bin/marksman" "server"]; + cmd = [(getExe pkgs.marksman) "server"]; + filetypes = ["markdown" "markdown.mdx"]; + root_markers = [".marksman.toml" ".git"]; }; }; diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index 9edf5637..61bc5abb 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -41,6 +41,8 @@ settings = { nil = formattingCmd; }; + filetypes = ["nix"]; + root_markers = [".git" "flake.nix"]; }; nixd = { @@ -49,6 +51,8 @@ settings = { nixd = formattingCmd; }; + filetypes = ["nix"]; + root_markers = [".git" "flake.nix"]; }; };