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
2f72604e89
commit
3c2807b83c
3 changed files with 154 additions and 126 deletions
|
@ -109,6 +109,13 @@ cmp.setup {
|
|||
return vim_item
|
||||
end,
|
||||
},
|
||||
sorting = {
|
||||
comparators = {
|
||||
cmp.config.compare.exact,
|
||||
cmp.config.compare.offset,
|
||||
cmp.config.compare.recently_used,
|
||||
}
|
||||
},
|
||||
sources = {
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
|
@ -131,5 +138,3 @@ cmp.setup {
|
|||
native_menu = false,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
|
|
|
@ -46,6 +46,19 @@ local plugins = packer.startup({ function(use)
|
|||
vim.notify = require("notify")
|
||||
end
|
||||
}
|
||||
|
||||
--------------------------------------------------SUGGESTION BOX-----------------------------------------
|
||||
use { "hrsh7th/nvim-cmp",
|
||||
requires = {
|
||||
'hrsh7th/cmp-nvim-lsp', -- lsp
|
||||
'hrsh7th/cmp-buffer', --buffer completions
|
||||
'hrsh7th/cmp-path', --path completions
|
||||
'hrsh7th/cmp-cmdline' --cmdline completions
|
||||
},
|
||||
config = function()
|
||||
require "plugins.cmp"
|
||||
end
|
||||
}
|
||||
-------------------------------------------------------LSP----------------------------------------------
|
||||
|
||||
use { "williamboman/mason.nvim",
|
||||
|
@ -56,6 +69,8 @@ local plugins = packer.startup({ function(use)
|
|||
|
||||
use { "williamboman/mason-lspconfig.nvim" }
|
||||
|
||||
use { "hrsh7th/cmp-nvim-lsp"}
|
||||
|
||||
use { "neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
require "plugins.lspconfig"
|
||||
|
@ -74,19 +89,8 @@ local plugins = packer.startup({ function(use)
|
|||
"saadparwaiz1/cmp_luasnip"
|
||||
},
|
||||
}
|
||||
--------------------------------------------------SUGGESTION BOX-----------------------------------------
|
||||
use { "hrsh7th/nvim-cmp",
|
||||
requires = {
|
||||
'hrsh7th/cmp-nvim-lsp', -- lsp
|
||||
'hrsh7th/cmp-buffer', --buffer completions
|
||||
'hrsh7th/cmp-path', --path completions
|
||||
'hrsh7th/cmp-cmdline' --cmdline completions
|
||||
},
|
||||
config = function()
|
||||
require "plugins.cmp"
|
||||
end
|
||||
}
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
use { 'nvim-tree/nvim-tree.lua',
|
||||
requires = {
|
||||
|
|
Loading…
Reference in a new issue