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({ [""] = cmp.mapping.confirm({ slelect = true}), [""] = 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", "vw", function() vim.lsp.buf.workspace_symbol() end, {buffer = bufnr, desc = "workspace symbol"}) vim.keymap.set("n", "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", "va", function() vim.lsp.buf.code_action() end, {buffer = bufnr, desc = "code actions"}) vim.keymap.set("n", "vr", function() vim.lsp.buf.references() end, {buffer = bufnr, desc = "references"}) vim.keymap.set("n", "vn", function() vim.lsp.buf.rename() end, {buffer = bufnr, desc = "rename"}) vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, {buffer = bufnr}) vim.keymap.set("n", "vh", function () vim.lsp.buf.hover() end, {buffer=bufnr, desc = "show hover action"}) vim.keymap.set("i", "", 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, })