98 lines
2.9 KiB
Lua
98 lines
2.9 KiB
Lua
|
local lsp = require('lsp-zero')
|
|||
|
local navic = require("nvim-navic")
|
|||
|
|
|||
|
local tabnine = require('cmp_tabnine.config')
|
|||
|
|
|||
|
tabnine:setup({
|
|||
|
max_lines = 1000,
|
|||
|
max_num_results = 20,
|
|||
|
sort = true,
|
|||
|
run_on_every_keystroke = true,
|
|||
|
snippet_placeholder = '..',
|
|||
|
ignored_file_types = {
|
|||
|
-- default is not to ignore
|
|||
|
-- uncomment to ignore in lua:
|
|||
|
-- lua = true
|
|||
|
},
|
|||
|
show_prediction_strength = false
|
|||
|
})
|
|||
|
|
|||
|
lsp.preset('recommended')
|
|||
|
|
|||
|
lsp.ensure_installed({
|
|||
|
"clangd",
|
|||
|
"gopls",
|
|||
|
"jdtls",
|
|||
|
"eslint",
|
|||
|
"tailwindcss",
|
|||
|
"tsserver",
|
|||
|
"cssmodules_ls",
|
|||
|
"rome",
|
|||
|
"jsonls",
|
|||
|
"sumneko_lua",
|
|||
|
"pylsp",
|
|||
|
"rust_analyzer",
|
|||
|
"stylelint_lsp",
|
|||
|
})
|
|||
|
|
|||
|
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
|||
|
local cmp = require("cmp")
|
|||
|
cmp.event:on(
|
|||
|
'confirm_done',
|
|||
|
cmp_autopairs.on_confirm_done()
|
|||
|
)
|
|||
|
|
|||
|
local cmp_select = {behavior = cmp.SelectBehavior.Select}
|
|||
|
local Cmp_mappings = lsp.defaults.cmp_mappings({
|
|||
|
["<C-y>"] = cmp.mapping.confirm({ slelect = true}),
|
|||
|
["<C-Space>"] = cmp.mapping.complete(),
|
|||
|
})
|
|||
|
|
|||
|
local cmp_sources = lsp.defaults.cmp_sources({
|
|||
|
{name="crates"},
|
|||
|
{name="cmp_tabnine"},
|
|||
|
})
|
|||
|
|
|||
|
lsp.setup_nvim_cmp({
|
|||
|
mapping = Cmp_mappings,
|
|||
|
sources = cmp_sources
|
|||
|
})
|
|||
|
|
|||
|
lsp.on_attach(function(client, bufnr)
|
|||
|
--if client.name == "eslint" then
|
|||
|
-- vim.cmd [[ LspStop eslint ]]
|
|||
|
-- return
|
|||
|
--end
|
|||
|
|
|||
|
navic.attach(client, bufnr)
|
|||
|
|
|||
|
|
|||
|
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {buffer = bufnr, desc = "goto definition"})
|
|||
|
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {buffer = bufnr})
|
|||
|
vim.keymap.set("n", "<leader>vw", function() vim.lsp.buf.workspace_symbol() end, {buffer = bufnr, desc = "workspace symbol"})
|
|||
|
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, {buffer = bufnr, desc = "diagnostics"})
|
|||
|
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {buffer = bufnr, desc = "goto next"})
|
|||
|
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {buffer = bufnr, desc = "goto prev"})
|
|||
|
vim.keymap.set("n", "<leader>va", function() vim.lsp.buf.code_action() end, {buffer = bufnr, desc = "code actions"})
|
|||
|
vim.keymap.set("n", "<leader>vr", function() vim.lsp.buf.references() end, {buffer = bufnr, desc = "references"})
|
|||
|
vim.keymap.set("n", "<leader>vn", function() vim.lsp.buf.rename() end, {buffer = bufnr, desc = "rename"})
|
|||
|
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, {buffer = bufnr})
|
|||
|
vim.keymap.set("n", "<leader>vh", function () vim.lsp.buf.hover() end, {buffer=bufnr, desc = "show hover action"})
|
|||
|
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {buffer=bufnr})
|
|||
|
end)
|
|||
|
|
|||
|
lsp.setup()
|
|||
|
|
|||
|
-- vim.diagnostic.config({
|
|||
|
-- signs = true,
|
|||
|
-- underline = true,
|
|||
|
-- update_in_insert = true,
|
|||
|
-- virtual_text = true,
|
|||
|
-- })
|
|||
|
vim.diagnostic.config({
|
|||
|
signs = true,
|
|||
|
underline = true,
|
|||
|
update_in_insert = true,
|
|||
|
virtual_text = true,
|
|||
|
})
|