diff --git a/init.lua b/init.lua index be49382..d86c53a 100644 --- a/init.lua +++ b/init.lua @@ -53,7 +53,7 @@ g['airline#extensions#tabline#left_alt_sep'] = '|' local function map(mode, lhs, rhs, opts) local options = {noremap = true, silent = true} if opts then options = vim.tbl_extend('force', options, opts) end - vim.api.nvim_set_keymap(mode, lhs, rhs, options) + vim.keymap.set(mode, lhs, rhs, options) end map('!','','') map('v','>','>gv') @@ -101,44 +101,30 @@ local lsp = require 'lspconfig' -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer -local on_attach = function(client, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end - - -- Enable completion triggered by - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - - -- Mappings. - local opts = { noremap=true, silent=true } - +local on_lsp_attach = function(client, bufnr) + vim.pretty_print(bufnr) -- See `:help vim.lsp.*` for documentation on any of the below functions - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) - buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) - buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) - buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) - buf_set_keymap('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) - buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) - buf_set_keymap('n', 'e', 'lua vim.diagnostic.open_float()', opts) - buf_set_keymap('n', '[d', 'lua vim.diagnostic.goto_prev()', opts) - buf_set_keymap('n', ']d', 'lua vim.diagnostic.goto_next()', opts) - buf_set_keymap('n', 'q', 'lua vim.diagnostic.setloclist()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.formatting()', opts) + vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) + vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()', opts) + vim.keymap.set('n', 'K', 'lua vim.lsp.buf.hover()', opts) + vim.keymap.set('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) + vim.keymap.set('n', '', 'lua vim.lsp.buf.signature_help()', opts) + vim.keymap.set('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) + vim.keymap.set('n', 'rn', 'lua vim.lsp.buf.rename()', opts) + vim.keymap.set('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) + vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.references()', opts) + vim.keymap.set('n', 'e', 'lua vim.diagnostic.open_float()', opts) + vim.keymap.set('n', '[d', 'lua vim.diagnostic.goto_prev()', opts) + vim.keymap.set('n', ']d', 'lua vim.diagnostic.goto_next()', opts) + vim.keymap.set('n', 'q', 'lua vim.diagnostic.setloclist()', opts) + vim.keymap.set('n', '', 'lua vim.lsp.buf.formatting()', opts) end -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches local servers = { 'gopls', 'kotlin_language_server', 'rust_analyzer', 'tsserver', 'pylsp' } -for _, server in ipairs(servers) do - lsp[server].setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150, - } - } -end +-- Setup loop moved to the cmp section, since calling setup multiple times +-- overrides the previous calls. -- Auto format on save vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.formatting_sync()]] @@ -201,8 +187,12 @@ cmp.setup({ -- Setup lspconfig. local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) for _, server in ipairs(servers) do - require('lspconfig')[server].setup { - capabilities = capabilities + lsp[server].setup { + capabilities = capabilities, + on_attach = on_lsp_attach, + flags = { + debounce_text_changes = 150, + } } end ---- Ultisnips