From cbf028159f42308a35460fd8c3a08b45a8c38b1e Mon Sep 17 00:00:00 2001 From: Gabe Venberg Date: Mon, 16 Mar 2026 12:37:55 +0100 Subject: [PATCH] added a buncha new LSPs. --- lua/lsp/C.lua | 3 +++ lua/lsp/config.lua | 12 ++++++++++ lua/lsp/init.lua | 32 +++++++++++++++++--------- lua/lsp/jsonnet.lua | 7 ++++++ lua/lsp/nix.lua | 9 ++++++++ lua/lsp/nushell.lua | 7 ++++++ lua/lsp/zig.lua | 7 ++++++ module.nix | 55 ++++++++++++++++++++++++++++++++++++++++++++- 8 files changed, 120 insertions(+), 12 deletions(-) create mode 100644 lua/lsp/config.lua create mode 100644 lua/lsp/jsonnet.lua create mode 100644 lua/lsp/nix.lua create mode 100644 lua/lsp/nushell.lua create mode 100644 lua/lsp/zig.lua diff --git a/lua/lsp/C.lua b/lua/lsp/C.lua index b382d76..0d58aec 100644 --- a/lua/lsp/C.lua +++ b/lua/lsp/C.lua @@ -3,5 +3,8 @@ return { "clangd", for_cat = "C", lsp = {}, + after=function() + require("clangd_extensions").setup({}) + end, }, } diff --git a/lua/lsp/config.lua b/lua/lsp/config.lua new file mode 100644 index 0000000..2972f2c --- /dev/null +++ b/lua/lsp/config.lua @@ -0,0 +1,12 @@ +return { + { + "taplo", + for_cat = "config", + lsp = {}, + }, + { + "yamlls", + for_cat = "config", + lsp = {}, + }, +} diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index 932c9ea..eb51be0 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -85,27 +85,37 @@ require('lze').load { "conform.nvim", for_cat = "lsp", on_require = { "conform" }, - cmd = { "ConformInfo" }, - keys = { { "lf", function() require("conform").format({async=true}) end, mode = { "" }, desc = "Format buffer" }, }, + cmd = { "ConformInfo" }, + keys = { + { "lf", function() require("conform").format({ async = true }) end, mode = { "" }, desc = "Format buffer" }, + }, after = function() require("conform").setup({ default_format_opts = { lsp_format = "fallback", }, - - formatters_by_ft = { - nix = { "alejandra" } - } }) + -- need to figure out how to properly seperate this. + if nixInfo("settings", "cat", "config") then + require("conform").formatters_by_ft.json = { "jq" } + end + if nixInfo("settings", "cat", "nix") then + require("conform").formatters_by_ft.nix = { "alejandra" } + end end, }, - { import = "lsp.lua" }, - { import = "lsp.python" }, { import = "lsp.C" }, - { import = "lsp.typst" }, { import = "lsp.bash" }, - { import = "lsp.zk" }, - { import = "lsp.rust" }, + { import = "lsp.config" }, { import = "lsp.go" }, + { import = "lsp.jsonnet" }, + { import = "lsp.lua" }, + { import = "lsp.nix" }, + { import = "lsp.nushell" }, + { import = "lsp.python" }, + { import = "lsp.rust" }, + { import = "lsp.typst" }, + { import = "lsp.zig" }, + { import = "lsp.zk" }, } diff --git a/lua/lsp/jsonnet.lua b/lua/lsp/jsonnet.lua new file mode 100644 index 0000000..c246dcb --- /dev/null +++ b/lua/lsp/jsonnet.lua @@ -0,0 +1,7 @@ +return { + { + "jsonnet_ls", + for_cat = "jsonnet", + lsp = {}, + }, +} diff --git a/lua/lsp/nix.lua b/lua/lsp/nix.lua new file mode 100644 index 0000000..accbd98 --- /dev/null +++ b/lua/lsp/nix.lua @@ -0,0 +1,9 @@ +return { + { + "nixd", + for_cat = "nix", + lsp = {}, + after = function() + end, + }, +} diff --git a/lua/lsp/nushell.lua b/lua/lsp/nushell.lua new file mode 100644 index 0000000..ba5beb1 --- /dev/null +++ b/lua/lsp/nushell.lua @@ -0,0 +1,7 @@ +return { + { + "nushell", + for_cat = "nushell", + lsp = {}, + }, +} diff --git a/lua/lsp/zig.lua b/lua/lsp/zig.lua new file mode 100644 index 0000000..3983f21 --- /dev/null +++ b/lua/lsp/zig.lua @@ -0,0 +1,7 @@ +return { + { + "zls", + for_cat = "zig", + lsp = {}, + }, +} diff --git a/module.nix b/module.nix index 8671482..ed03fc6 100644 --- a/module.nix +++ b/module.nix @@ -152,7 +152,9 @@ inputs: { }; config.specs.zk = { + name = "zk"; after = ["general" "lazy"]; + lazy = true; data = with pkgs.vimPlugins; [ zk-nvim ]; @@ -164,6 +166,7 @@ inputs: { config.specs.typst = { name = "typst"; after = ["general" "lazy"]; + lazy = true; data = with pkgs.vimPlugins; [ typst-preview-nvim ]; @@ -176,24 +179,69 @@ inputs: { config.specs.go = { name = "go"; after = ["general" "lazy"]; + lazy = true; data = null; extraPackages = with pkgs; [ gopls ]; }; + config.specs.config = { + name = "config"; + after = ["general" "lazy"]; + lazy = true; + data = null; + extraPackages = with pkgs; [ + taplo + jq + yaml-language-server + ]; + }; + + config.specs.jsonnet = { + name = "jsonnet"; + after = ["general" "lazy"]; + lazy = true; + data = null; + extraPackages = with pkgs; [ + jsonnet-language-server + ]; + }; + + config.specs.zig = { + name = "zig"; + after = ["general" "lazy"]; + lazy = true; + data = null; + extraPackages = with pkgs; [ + zls + ]; + }; + config.specs.nushell = { + name = "nushell"; + after = ["general" "lazy"]; + lazy = true; + data = null; + extraPackages = with pkgs; [ + nushell + ]; + }; + config.specs.nix = { name = "nix"; after = ["general" "lazy"]; + lazy = true; data = null; extraPackages = with pkgs; [ alejandra + nixd ]; }; config.specs.lua = { name = "lua"; after = ["general" "lazy"]; + lazy = true; data = with pkgs.vimPlugins; [ lazydev-nvim ]; @@ -206,6 +254,7 @@ inputs: { config.specs.rust = { name = "rust"; after = ["general" "lazy"]; + lazy = true; data = with pkgs.vimPlugins; [ rustaceanvim ]; @@ -218,6 +267,7 @@ inputs: { config.specs.python = { name = "python"; after = ["general" "lazy"]; + lazy = true; data = null; extraPackages = with pkgs; [ ty @@ -228,7 +278,10 @@ inputs: { config.specs.C = { name = "C"; after = ["general" "lazy"]; - data = null; + lazy = true; + data = with pkgs.vimPlugins; [ + clangd_extensions-nvim + ]; extraPackages = with pkgs; [ libclang ];