24 lines
987 B
Lua
24 lines
987 B
Lua
local map = require('utils').map -- import map
|
|
|
|
require('mason-lspconfig').setup()
|
|
require('mason-lspconfig').setup_handlers({
|
|
function(server_name) -- default handler
|
|
-- prepare nvim-cmp source
|
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
|
require('lspconfig')[server_name].setup({
|
|
-- announce nvim-cmp-lsp capabilities to each lsp server
|
|
capabilities = capabilities
|
|
})
|
|
end
|
|
})
|
|
|
|
-- lsp keybindings
|
|
map('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>')
|
|
map('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>')
|
|
map('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>')
|
|
map('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>')
|
|
map('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>')
|
|
map('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>')
|
|
map('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>')
|
|
map('n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>')
|
|
map('n', '<leader>f', '<cmd>lua vim.lsp.buf.type_definition({ async = true })<CR>')
|