chore: Added lsp capabilities of nvim cmp. It can now do much more as LSPs see
nvim has more functionalities (Show unimported functions etc). Also added better sorting to cmp entries. Added a notification when LSP finished loading.
This commit is contained in:
parent
6939a13ae0
commit
54485a1dcd
3 changed files with 154 additions and 126 deletions
|
@ -1,10 +1,12 @@
|
|||
local mason_lspconfig = require "mason-lspconfig"
|
||||
local notify = require "notify"
|
||||
|
||||
mason_lspconfig.setup({
|
||||
ensure_installed = { "sumneko_lua", "rust_analyzer", "texlab", "hls", "yamlls" },
|
||||
automatic_installation = true
|
||||
})
|
||||
|
||||
|
||||
local opts = { noremap = true, silent = true }
|
||||
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
|
||||
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
|
||||
|
@ -46,15 +48,32 @@ local on_attach = function(client, bufnr)
|
|||
end
|
||||
end
|
||||
|
||||
local on_init = function (client, initialize_result)
|
||||
-- Alert user that LSP finished loading
|
||||
notify("Finished loading " ..client.name, "info", {title = "LSP"})
|
||||
end
|
||||
|
||||
local lspconfig = require "lspconfig"
|
||||
|
||||
-- ADD NVIM CMP AS A CAPABILITY
|
||||
local lsp_defaults = lspconfig.util.default_config
|
||||
|
||||
local capabilities = vim.tbl_deep_extend(
|
||||
'force',
|
||||
lsp_defaults.capabilities,
|
||||
require('cmp_nvim_lsp').default_capabilities()
|
||||
)
|
||||
|
||||
|
||||
mason_lspconfig.setup_handlers {
|
||||
|
||||
-- This is a default handler that will be called for each installed server (also for new servers that are installed during a session)
|
||||
function(server_name)
|
||||
lspconfig[server_name].setup {
|
||||
on_attach = on_attach,
|
||||
on_init = on_init,
|
||||
flags = lsp_flags,
|
||||
capabilities = capabilities,
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue