97 lines
2.9 KiB
Lua
Executable file
97 lines
2.9 KiB
Lua
Executable file
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,
|
||
})
|