update
This commit is contained in:
41
lua/plugins/config/lsp.lua
Normal file
41
lua/plugins/config/lsp.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
--local lspconfig = require("lspconfig")
|
||||
local cmp_nvim_lsp = require("cmp_nvim_lsp")
|
||||
|
||||
-- Setup capabilities for nvim-cmp completion
|
||||
local capabilities = cmp_nvim_lsp.default_capabilities()
|
||||
|
||||
-- Common on_attach function to map keys after LSP attaches to buffer
|
||||
local on_attach = function(client, bufnr)
|
||||
local bufmap = function(mode, lhs, rhs)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, { noremap = true, silent = true })
|
||||
end
|
||||
|
||||
-- LSP-related keymaps
|
||||
bufmap("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>")
|
||||
bufmap("n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>")
|
||||
bufmap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>")
|
||||
bufmap("n", "<leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>")
|
||||
bufmap("n", "<leader>ca", "<cmd>lua vim.lsp.buf.code_action()<CR>")
|
||||
bufmap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>")
|
||||
bufmap("n", "<leader>f", "<cmd>lua vim.lsp.buf.formatting()<CR>")
|
||||
end
|
||||
|
||||
-- List of servers to setup
|
||||
local servers = {
|
||||
"pyright",
|
||||
"clangd",
|
||||
"zls",
|
||||
"lua_ls",
|
||||
"vimls",
|
||||
"marksman",
|
||||
"texlab",
|
||||
}
|
||||
|
||||
for _, server in ipairs(servers) do
|
||||
vim.lsp.config(server, {
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
})
|
||||
-- Enable the server configuration
|
||||
vim.lsp.enable(server)
|
||||
end
|
||||
Reference in New Issue
Block a user