require("mason").setup({ ui = { icons = { package_installed = "✓", package_pending = "➜", package_uninstalled = "✗" } } }) local lspconfig_defaults = require('lspconfig').util.default_config lspconfig_defaults.capabilities = vim.tbl_deep_extend( 'force', lspconfig_defaults.capabilities, require('cmp_nvim_lsp').default_capabilities() ) vim.api.nvim_create_autocmd('LspAttach', { desc = 'LSP actions', callback = function(event) local opts = {buffer = event.buf} vim.keymap.set('n', 'K', 'lua vim.lsp.buf.hover()', opts) vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()', opts) vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) vim.keymap.set('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) vim.keymap.set('n', 'go', 'lua vim.lsp.buf.type_definition()', opts) vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.references()', opts) vim.keymap.set('n', 'gs', 'lua vim.lsp.buf.signature_help()', opts) vim.keymap.set('n', '', 'lua vim.lsp.buf.rename()', opts) vim.keymap.set({'n', 'x'}, '', 'lua vim.lsp.buf.format({async = true})', opts) vim.keymap.set('n', '', 'lua vim.lsp.buf.code_action()', opts) end, }) -- local lsp = require('lsp-zero').preset({ -- name = 'minimal', -- set_lsp_keymaps = true, -- manage_nvim_cmp = true, -- suggest_lsp_servers = false, -- }) -- lsp.on_attach(function(client, bufnr) -- local opts = { buffer = bufnr, remap = false } -- -- -- if client.name == "eslint" then -- -- vim.cmd.LspStop('eslint') -- -- return -- -- end -- -- vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) -- vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) -- --vim.keymap.set("n", "fs", vim.lsp.buf.workspace_symbol, opts) -- vim.keymap.set("n", "vd", vim.diagnostic.open_float, opts) -- vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) -- vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) -- vim.keymap.set("n", "ca", vim.lsp.buf.code_action, opts) -- vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) -- vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) -- vim.keymap.set("i", "", vim.lsp.buf.signature_help, opts) -- end) -- -- local cmp = require('cmp') -- local cmp_select = { behavior = cmp.SelectBehavior.Select } -- lsp.setup_nvim_cmp({ -- mapping = cmp.mapping.preset.insert({ -- [''] = cmp.mapping.complete(), -- [''] = cmp.mapping.scroll_docs(-4), -- [''] = cmp.mapping.scroll_docs(4), -- [''] = cmp.mapping.select_prev_item(cmp_select), -- [''] = cmp.mapping.select_next_item(cmp_select), -- [''] = cmp.mapping.confirm({ select = true }), -- }), -- }) -- -- local cmp = require('cmp') -- -- cmp.setup({ -- sources = { -- {name = 'nvim_lsp'}, -- }, -- snippet = { -- expand = function(args) -- vim.snippet.expand(args.body) -- end, -- }, -- mapping = cmp.mapping.preset.insert({ -- [''] = cmp.mapping.complete(), -- [''] = cmp.mapping.scroll_docs(-4), -- [''] = cmp.mapping.scroll_docs(4), -- [''] = cmp.mapping.select_prev_item(cmp_select), -- [''] = cmp.mapping.select_next_item(cmp_select), -- [''] = cmp.mapping.confirm({ select = true }), -- }), -- }) -- -- lsp.setup()