aboutsummaryrefslogtreecommitdiff
path: root/modules/users
diff options
context:
space:
mode:
authorschererleander <leander@schererleander.de>2026-01-08 12:24:21 +0100
committerLeander Scherer <leander@schererleander.de>2026-01-08 19:08:13 +0100
commit67681d50b7a91e2d035b1f3dabcfb677d1a96abe (patch)
tree290dad37fe5e02b01aa8b592912d624dfe6762a7 /modules/users
parent481ad09e276064b85c76a2321c7f2457dfeb025a (diff)
feat(nvim): use native lsp setup
Diffstat (limited to 'modules/users')
-rw-r--r--modules/users/editors/neovim/init.lua114
1 files changed, 70 insertions, 44 deletions
diff --git a/modules/users/editors/neovim/init.lua b/modules/users/editors/neovim/init.lua
index 1d2bdbb..4f03c98 100644
--- a/modules/users/editors/neovim/init.lua
+++ b/modules/users/editors/neovim/init.lua
@@ -126,62 +126,88 @@ vim.api.nvim_create_autocmd('LspAttach', {
end,
})
-local servers = {
- nixd = {
- settings = {
- nixd = {
- formatting = {
- command = { "nixfmt" },
- },
+-- Native LSP setup (Neovim v0.11+)
+vim.lsp.config('nixd', {
+ cmd = { 'nixd' },
+ capabilities = capabilities,
+ settings = {
+ nixd = {
+ formatting = {
+ command = { "nixfmt" },
},
},
},
- lua_ls = {
- settings = {
- lua_ls = {
- formatting = {
- command = { "luaformatter" },
- },
+})
+
+vim.lsp.config('nil_ls', {
+ cmd = { 'nil' },
+ capabilities = capabilities,
+})
+
+vim.lsp.config('lua_ls', {
+ cmd = { 'lua-language-server' },
+ capabilities = capabilities,
+ settings = {
+ Lua = {
+ runtime = {
+ version = 'LuaJIT',
+ },
+ diagnostics = {
+ globals = { 'vim', 'require' },
},
- Lua = {
- runtime = {
- version = 'LuaJIT',
- },
- diagnostics = {
- globals = { 'vim', 'require' },
- },
- workspace = {
- library = vim.api.nvim_get_runtime_file("", true),
- },
- telemetry = {
- enable = false,
- },
+ workspace = {
+ library = vim.api.nvim_get_runtime_file("", true),
+ },
+ telemetry = {
+ enable = false,
},
},
},
- pyright = {},
- tailwindcss = {},
- gopls = {
- settings = {
- gopls = {
- analyses = {
- unusedparams = true,
- unusedwrite = true,
- },
- staticcheck = true,
+})
+
+vim.lsp.config('pyright', {
+ cmd = { 'pyright-langserver', '--stdio' },
+ capabilities = capabilities,
+})
+
+vim.lsp.config('tailwindcss', {
+ cmd = { 'tailwindcss-language-server', '--stdio' },
+ capabilities = capabilities,
+})
+
+vim.lsp.config('gopls', {
+ cmd = { 'gopls' },
+ capabilities = capabilities,
+ settings = {
+ gopls = {
+ analyses = {
+ unusedparams = true,
+ unusedwrite = true,
},
+ staticcheck = true,
},
},
- rust_analyzer = {},
- ts_ls = {},
-}
+})
+vim.lsp.config('rust_analyzer', {
+ cmd = { 'rust-analyzer' },
+ capabilities = capabilities,
+})
-local lspconfig = require('lspconfig')
-for server, config in pairs(servers) do
- config.capabilities = capabilities
- lspconfig[server].setup(config)
-end
+vim.lsp.config('ts_ls', {
+ cmd = { 'typescript-language-server', '--stdio' },
+ capabilities = capabilities,
+})
+
+-- Enable all configured servers
+vim.lsp.enable('nixd')
+vim.lsp.enable('nil_ls')
+vim.lsp.enable('lua_ls')
+vim.lsp.enable('pyright')
+vim.lsp.enable('tailwindcss')
+vim.lsp.enable('gopls')
+vim.lsp.enable('rust_analyzer')
+vim.lsp.enable('ts_ls')
vim.diagnostic.config({
virtual_text = { source = "if_many" },