From 0913d009689ee93f48417ab66037ad8ca1e811c3 Mon Sep 17 00:00:00 2001 From: Fey Naomi Schrewe Date: Sun, 8 Sep 2024 12:36:40 +0200 Subject: [PATCH] feat: add lsp key descriptions --- lua/lsp-setup.lua | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/lua/lsp-setup.lua b/lua/lsp-setup.lua index c5afbcc..e54c458 100644 --- a/lua/lsp-setup.lua +++ b/lua/lsp-setup.lua @@ -8,10 +8,15 @@ lspconfig.ccls.setup {} -- Global mappings. -- See `:help vim.diagnostic.*` for documentation on any of the below functions -vim.keymap.set('n', 'e', vim.diagnostic.open_float) -vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) -vim.keymap.set('n', ']d', vim.diagnostic.goto_next) -vim.keymap.set('n', 'q', vim.diagnostic.setloclist) +vim.keymap.set('n', 'e', vim.diagnostic.open_float, { + desc = 'Open LSP diagnostics' +}) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { + desc = 'Go to previous LSP diagnostic' +}) +vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { + desc = 'Go to next LSP diagnostic' +}) -- Use LspAttach autocommand to only map the following keys -- after the language server attaches to the current buffer @@ -23,24 +28,21 @@ vim.api.nvim_create_autocmd('LspAttach', { -- Buffer local mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions - local opts = { buffer = ev.buf } - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) - vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) - vim.keymap.set('n', 'wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, opts) - vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) - vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) + local opts = function (desc) return { buffer = ev.buf, desc = desc } end + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts('Go to declaration')) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts('Go to definition')) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts('Show LSP info')) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts('Go to implementation')) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts('Show function signature')) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts('Add workspace folder')) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts('Remove workspace folder')) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts('Go to type definition')) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts('Rename symbol')) + vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts('Execute code action')) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts('Go to references')) vim.keymap.set('n', 'f', function() vim.lsp.buf.format { async = true } - end, opts) + end, opts('Format buffer with LSP')) end, })