X-Git-Url: https://src.twobees.de/?a=blobdiff_plain;f=stow%2Fnvim%2F.config%2Fnvim%2Fafter%2Fplugin%2Flspsetup.lua;h=367011f7173d3bbf849aa7fdbbf61556947d0aa2;hb=d7e8b8283fdce73c6281347ab7cb93bae657c320;hp=170bfebfafe6024675e8c6942643295ebfd85166;hpb=2714a4bd8aa12cd73680a00a2f0a250113e626be;p=dotfiles.git diff --git a/stow/nvim/.config/nvim/after/plugin/lspsetup.lua b/stow/nvim/.config/nvim/after/plugin/lspsetup.lua index 170bfeb..367011f 100644 --- a/stow/nvim/.config/nvim/after/plugin/lspsetup.lua +++ b/stow/nvim/.config/nvim/after/plugin/lspsetup.lua @@ -10,12 +10,37 @@ lsp.configure('sumneko_lua', { } } }) + +lsp.on_attach = function (_, bufnr) + local options = { buffer = bufnr, remap = false } + vim.keymap.set ("n", "K", vim.lsp.buf.hover, options) -- buffer=0 -> only in current buffer + vim.keymap.set ("n", "gd", vim.lsp.buf.definition, options) -- goto definition + vim.keymap.set ("n", "gT", vim.lsp.buf.type_definition, options) -- goto typedefinition + vim.keymap.set ("n", "gi", vim.lsp.buf.implementation, options) -- goto implementation + vim.keymap.set ("n", "dj", vim.diagnostic.goto_next, options) -- goto dignostic next + vim.keymap.set ("n", "dk", vim.diagnostic.goto_prev, options) -- goto diognostic prev + vim.keymap.set ("n", "dl", "Telescope diagnostic", options) -- goto list failure + vim.keymap.set ("n", "r", vim.lsp.buf.rename, options) + vim.keymap.set ("n", "f", vim.lsp.buf.code_action, options) +end + +local cmp = require('cmp') +local cmp_select = {behavior = cmp.SelectBehavior.Select} +local cmp_mappings = lsp.defaults.cmp_mappings({ + [''] = cmp.mapping.select_prev_item(cmp_select), + [''] = cmp.mapping.select_next_item(cmp_select), + [''] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping.complete(), +}) + +lsp.setup_nvim_cmp({ + mapping = cmp_mappings, +}) + +cmp.setup({ + experimental = { ghost_text = true }, +}); + lsp.setup() -vim.lsp.handlers["textDocument/publishDiagnostics"] = -vim.lsp.with( - vim.lsp.diagnostic.on_publish_diagnostics, - { - virtual_text = true, -- inline diagnostic on line end - } -) +vim.diagnostic.config( { virtual_text = true } )