diff options
feat: add `nixd` language server
Diffstat (limited to '')
-rw-r--r-- | flake.nix | 15 | ||||
-rw-r--r-- | lsp/nixd.lua | 21 | ||||
-rw-r--r-- | lua/config/lsp.lua | 1 |
3 files changed, 27 insertions, 10 deletions
@@ -103,6 +103,7 @@ lspsAndRuntimeDeps = { general = with pkgs; { lua = [ lua-language-server ]; + nix = [ nix-doc nixd ]; }; }; @@ -210,6 +211,7 @@ aliases = [ "vim" ]; neovim-unwrapped = inputs.neovim-nightly-overlay.packages.${pkgs.system}.neovim; }; + # and a set of categories that you want # (and other information to pass to lua) categories = { @@ -219,17 +221,10 @@ general = true; gitPlugins = true; customPlugins = true; + }; - test = true; - example = { - youCan = "add more than just booleans"; - toThisSet = [ - "and the contents of this categories set" - "will be accessible to your lua with" - "nixCats('path.to.value')" - "see :help nixCats" - ]; - }; + extra = { + nixdExtras = { inherit nixpkgs; }; }; }; }; diff --git a/lsp/nixd.lua b/lsp/nixd.lua new file mode 100644 index 0000000..3e899c3 --- /dev/null +++ b/lsp/nixd.lua @@ -0,0 +1,21 @@ +return { + cmd = { "nixd" }, + filetypes = { "nix" }, + + settings = { + nixd = { + nixpkgs = { + expr = [[import (builtins.getFlake "]] .. nixCats.extra("nixdExtras.nixpkgs") .. [[") { } ]], + }, + + formatting = { + command = { "nixfmt" }, + }, + + options = { + nixos = { expr = nixCats.extra("nixdExtras.nixos_options") }, + ["home-manager"] = { expr = nixCats.extra("nixdExtras.home_manager_options") }, + }, + }, + }, +} diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua index c8444ef..37e3b6f 100644 --- a/lua/config/lsp.lua +++ b/lua/config/lsp.lua @@ -1 +1,2 @@ vim.lsp.enable("lua-language-server") +vim.lsp.enable("nixd") |