diff --git a/neovim/lua/plugins/config/lsp.lua b/neovim/lua/plugins/config/lsp.lua index 4f0b719..cd0150d 100644 --- a/neovim/lua/plugins/config/lsp.lua +++ b/neovim/lua/plugins/config/lsp.lua @@ -7,38 +7,34 @@ if not ok then end local custom_attach = function(_, bufnr) - local function buf_set_keymap(...) - vim.api.nvim_buf_set_keymap(bufnr, ...) - end + local opts = { noremap=true, silent=true, buffer=bufnr } - local function buf_set_option(...) - vim.api.nvim_buf_set_option(bufnr, ...) - end + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - - local opts = { noremap=true, silent=true } - - -- See `:help vim.lsp.*` for documentation on any of the below functions - buf_set_keymap('n', 'h', 'lua vim.lsp.buf.hover()', { noremap=true, silent=true }) - buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { noremap=true, silent=true }) - buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', { noremap=true, silent=true }) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { noremap=true, silent=true }) - buf_set_keymap('n', 'dl', 'lua vim.lsp.diagnostic.set_loclist()', { noremap=true, silent=true }) - buf_set_keymap('n', 'dn', 'lua vim.lsp.diagnostic.goto_next()', { noremap=true, silent=true }) - buf_set_keymap('n', 'dp', 'lua vim.lsp.diagnostic.goto_prev()', { noremap=true, silent=true }) - buf_set_keymap('n', 'de', 'lua vim.lsp.diagnostic.show_line_diagnostics()', { noremap=true, silent=true }) - buf_set_keymap('n', 'gt', 'lua vim.lsp.buf.type_definition()', { noremap=true, silent=true }) - buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', { noremap=true, silent=true }) - buf_set_keymap("n", "ff", "lua vim.lsp.buf.format { async = true }", opts) - buf_set_keymap('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) - buf_set_keymap('n', 'dec', 'lua vim.lsp.buf.declaration()', opts) - --buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) - --buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) - --buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) - --buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) + -- See `:help vim.diagnostic.*` for documentation on any of the diagnostics functions + vim.keymap.set('n', 'h', vim.lsp.buf.hover, opts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) + vim.keymap.set('n', 'dl', vim.diagnostic.setloclist, opts) + vim.keymap.set('n', 'dn', vim.diagnostic.goto_next, opts) + vim.keymap.set('n', 'dp', vim.diagnostic.goto_prev, opts) + vim.keymap.set('n', 'gt', vim.lsp.buf.type_definition, opts) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) + vim.keymap.set("n", 'ff', function() vim.lsp.buf.format{ async = true } end, opts) + vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, opts) + vim.keymap.set('n', 'dec', vim.lsp.buf.declaration, opts) + --buf_set_keymap('n', '', vim.lsp.buf.signature_help, opts) + --buf_set_keymap('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) + --buf_set_keymap('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) + --buf_set_keymap('n', 'wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end', opts) end +local lsp_flags = { + debounce_text_changes = 150, +} + -- Go lspconfig.gopls.setup{ on_attach = custom_attach, @@ -57,16 +53,20 @@ lspconfig.gopls.setup{ hoverKind = "FullDocumentation", }, }, + flags = lsp_flags, } -- Golangci-lint language server -- requires golangci-lint and golangci-lint-langserver -lspconfig.golangci_lint_ls.setup{} +lspconfig.golangci_lint_ls.setup{ + flags = lsp_flags, +} -- Jsonnet lspconfig.jsonnet_ls.setup{ on_attach = custom_attach, cmd = {"jsonnet-language-server", "--lint"}, + flags = lsp_flags, } -- Terraform @@ -75,6 +75,7 @@ lspconfig.terraformls.setup{ cmd = {"terraform-ls", "serve", "-log-file="..log_directory.."/terraformls.log"}, filetypes = {"terraform", "hcl", "tf"}, root_dir = lspconfig.util.root_pattern{".terraform", ".git", "main.tf"}, + flags = lsp_flags, } -- Python @@ -82,6 +83,7 @@ lspconfig.pylsp.setup{ on_attach = custom_attach, cmd = { "pylsp" }, filetypes = { "python" }, + flags = lsp_flags, } -- Lua @@ -112,5 +114,6 @@ lspconfig.sumneko_lua.setup { enable = false, }, } - } + }, + flags = lsp_flags, }