nvim/lua/user/lsp.lua
Prabhat Maurya 5793c3da7f update
2026-01-29 19:59:22 +05:30

33 lines
1.1 KiB
Lua

-- 1. Setup Mason first
require("mason").setup()
require("mason-lspconfig").setup({
-- Remove "jdtls" from here to prevent the 'enable' (nil value) crash
ensure_installed = {
"pyright",
"ts_ls",
"marksman",
"kotlin_language_server",
"graphql"
},
})
-- 2. Global LSP Attach (The modern way to handle keymaps)
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
callback = function(ev)
local opts = { buffer = ev.buf }
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
end,
})
-- 3. Load your modernized server configs
-- These files should now use vim.lsp.config and vim.lsp.enable
require("user.lsp_servers.pyright")
require("user.lsp_servers.ts_ls")
require("user.lsp_servers.jdtls")
require("user.lsp_servers.marksman")
require("user.lsp_servers.kotlin_ls")
require("user.lsp_servers.graphql")