From 833699382003ce2912dfe019ff90767f929cb82b Mon Sep 17 00:00:00 2001 From: Smaug123 Date: Sat, 23 Mar 2024 19:07:25 +0000 Subject: [PATCH] Document more --- home-manager/nvim/init.lua | 3 -- home-manager/nvim/lspconfig.lua | 65 ++++++++++++++++++++++++--------- 2 files changed, 48 insertions(+), 20 deletions(-) diff --git a/home-manager/nvim/init.lua b/home-manager/nvim/init.lua index 0eb5340..09e1106 100644 --- a/home-manager/nvim/init.lua +++ b/home-manager/nvim/init.lua @@ -144,9 +144,6 @@ if status then "View all mappings" }, }, { prefix = vim.api.nvim_get_var("maplocalleader") }) - - -- Let's document some stuff! - whichkey.register({ g = { T = "Go to previous tab", t = "Go to next tab", } }) else vim.api.nvim_set_keymap('n', 'mp', ':lua MarkdownPreview()', { noremap = true, silent = true }) -- Remove the Windows ^M - when the encodings gets messed up diff --git a/home-manager/nvim/lspconfig.lua b/home-manager/nvim/lspconfig.lua index 0cd2f75..6dc3dc0 100644 --- a/home-manager/nvim/lspconfig.lua +++ b/home-manager/nvim/lspconfig.lua @@ -40,22 +40,53 @@ 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', function() require('telescope.builtin').lsp_references() end, opts) - vim.keymap.set('n', 'f', function() - vim.lsp.buf.format { async = true } - end, opts) + local status, whichkey = pcall(require, "which-key") + if status then + whichkey.register( + { + g = + { + D = { vim.lsp.buf.declaration, "Go to declaration", }, + d = { vim.lsp.buf.definition, "Go to definition", }, + i = { vim.lsp.buf.implementation, "Go to implementation", }, + r = { function() require('telescope.builtin').lsp_references() end, "Find references", }, + }, + K = { vim.lsp.buf.hover, "Display information about symbol under cursor", }, + }) + whichkey.register({ [""] = { vim.lsp.buf.signature_help, "Display signature information about symbol under cursor" } }) + whichkey.register({ + w = { + a = { vim.lsp.buf.add_workspace_folder, "Add a path to the workspace folders list", }, + r = { vim.lsp.buf.add_workspace_folder, "Remove a path from the workspace folders list", }, + l = { function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, "Show the workspace folders list", }, + }, + f = { function() vim.lsp.buf.format { async = true } end, "Autoformat" }, + c = { + a = { vim.lsp.buf.code_action, "Select a code action" }, + }, + r = { + n = { vim.lsp.buf.rename, "Rename buffer" }, + }, + D = { vim.lsp.buf.type_definition, "Go to type definition" }, + }, { prefix = "" } ) + else + 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', function() require('telescope.builtin').lsp_references() end, opts) + vim.keymap.set('n', 'f', function() + vim.lsp.buf.format { async = true } + end, opts) + end end, })