55 lines
2.0 KiB
Lua
55 lines
2.0 KiB
Lua
return {
|
|
"mason-org/mason-lspconfig.nvim",
|
|
dependencies = {
|
|
{"mason-org/mason.nvim"},
|
|
{'neovim/nvim-lspconfig'},
|
|
|
|
{'nvim-mini/mini.nvim'},
|
|
{'nvim-mini/mini.completion'},
|
|
},
|
|
config = function()
|
|
require("mason").setup()
|
|
require("mason-lspconfig").setup {}
|
|
|
|
-- NOTE: this is meant to be backwards compatible with Neovim v0.9
|
|
---
|
|
-- Autocompletion
|
|
---
|
|
|
|
--require('mini.snippets').setup()
|
|
require('mini.completion').setup()
|
|
|
|
---
|
|
-- Language server configuration
|
|
---
|
|
|
|
-- These keymaps are the defaults in Neovim v0.10
|
|
if vim.fn.has('nvim-0.11') == 0 then
|
|
-- NOTE: vim.diagnostic.goto_* methods are deprecated in v0.11
|
|
-- that's why we put these under a conditional block
|
|
vim.keymap.set('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
|
|
vim.keymap.set('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>')
|
|
vim.keymap.set('n', '<C-w>d', '<cmd>lua vim.diagnostic.open_float()<cr>')
|
|
vim.keymap.set('n', '<C-w><C-d>', '<cmd>lua vim.diagnostic.open_float()<cr>')
|
|
end
|
|
|
|
vim.api.nvim_create_autocmd('LspAttach', {
|
|
callback = function(event)
|
|
local bufmap = function(mode, rhs, lhs)
|
|
vim.keymap.set(mode, rhs, lhs, {buffer = event.buf})
|
|
end
|
|
|
|
-- These keymaps are the defaults in Neovim v0.11
|
|
bufmap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>')
|
|
bufmap('n', 'grr', '<cmd>lua vim.lsp.buf.references()<cr>')
|
|
bufmap('n', 'gri', '<cmd>lua vim.lsp.buf.implementation()<cr>')
|
|
bufmap('n', 'grn', '<cmd>lua vim.lsp.buf.rename()<cr>')
|
|
bufmap('n', 'gra', '<cmd>lua vim.lsp.buf.code_action()<cr>')
|
|
bufmap('n', 'gO', '<cmd>lua vim.lsp.buf.document_symbol()<cr>')
|
|
bufmap({'i', 's'}, '<C-s>', '<cmd>lua vim.lsp.buf.signature_help()<cr>')
|
|
end,
|
|
})
|
|
|
|
end
|
|
}
|