Add which-key plugin and descriptions for all custom keymaps

This commit is contained in:
Fabian Schmidt
2024-09-17 14:49:38 +02:00
parent 9b831f0e3a
commit 8b714fabfa
7 changed files with 102 additions and 76 deletions

View File

@@ -1,12 +1,29 @@
return {
{
'mfussenegger/nvim-dap',
dependencies = { 'nvim-lua/plenary.nvim' }
dependencies = { 'nvim-lua/plenary.nvim' },
config = function()
local wk = require("which-key")
local dap = require("dap")
wk.add({
{ '<leader>d', group = "dap" },
{ '<leader>db', dap.toggle_breakpoint, desc = "Toggle breakpoint" },
{ '<leader>dc', dap.continue, desc = "Launch/resume debug session" },
{ '<leader>do', dap.step_over, desc = "Step over" },
{ '<leader>di', dap.step_into, desc = "Step into" },
{ '<leader>du', dap.step_out, desc = "Step out" },
})
end
},
{
'rcarriga/nvim-dap-ui',
config = function()
require("dapui").setup()
local dapui = require("dapui")
dapui.setup()
local wk = require("which-key")
wk.add({
{ '<leader>dd', dapui.toggle, desc = "Toggle dap ui" }
})
end,
dependencies = { 'mfussenegger/nvim-dap', 'nvim-neotest/nvim-nio' }
},

View File

@@ -5,26 +5,23 @@ local lsp_attach = function(client, buf)
vim.lsp.inlay_hint.enable(true, nil)
local opts = { noremap = true, silent = true }
vim.keymap.set('n', '<S-C-e>', require("telescope.builtin").diagnostics, opts)
local bufopts = { noremap = true, silent = true, buffer = buf }
local wk = require("which-key")
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, bufopts)
vim.keymap.set('n', '<C-e>', require("telescope.builtin").diagnostics, bufopts)
vim.keymap.set('n', '<C-ü>d', vim.diagnostic.goto_prev, bufopts)
vim.keymap.set('n', '<C-¨>d', vim.diagnostic.goto_next, bufopts)
wk.add({
{ '<leader>e', vim.diagnostic.open_float, bufopts, desc = "Show diagnostics in buffer" },
{ '<C-e>', require("telescope.builtin").diagnostics, bufopts, desc = "Show diagnostics under cursor" },
{ '<C-ü>d', vim.diagnostic.goto_prev, bufopts },
{ '<C-¨>d', vim.diagnostic.goto_next, bufopts },
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', require("telescope.builtin").lsp_references, bufopts)
{ 'gD', vim.lsp.buf.declaration, bufopts, desc = "Go to declaration" },
{ 'gd', vim.lsp.buf.definition, bufopts, desc = "Go to definition" },
{ 'gi', vim.lsp.buf.implementation, bufopts, desc = "Go to implementation" },
{ '<C-k>', vim.lsp.buf.signature_help, bufopts, desc = "Show signature" },
{ '<leader>rn', vim.lsp.buf.rename, bufopts, desc = "Rename" },
{ '<leader>ca', vim.lsp.buf.code_action, bufopts, desc = "Show code actions" },
{ 'gr', require("telescope.builtin").lsp_references, bufopts, desc = "Shwo references" },
})
end
local mason_path = vim.fn.glob(vim.fn.stdpath "data" .. "/mason/packages/codelldb/extension/")

View File

@@ -8,6 +8,11 @@ return {
vim.keymap.set("n", "<leader>gh", require("telescope.builtin").git_bcommits, opts)
vim.keymap.set("n", "<leader>gb", require("telescope.builtin").git_branches, opts)
vim.keymap.set("n", "<leader>gs", require("telescope.builtin").git_status, opts)
vim.keymap.set('n', '<Leader>ff', '<cmd>lua require(\'telescope.builtin\').git_files()<CR>', opts)
vim.keymap.set('n', '<Leader>fg', '<cmd>lua require(\'telescope.builtin\').live_grep()<CR>', opts)
vim.keymap.set('n', '<Leader>fb', '<cmd>lua require(\'telescope.builtin\').buffers()<CR>', opts)
vim.keymap.set('n', '<Leader>fh', '<cmd>lua require(\'telescope.builtin\').help_tags()<CR>', opts)
vim.keymap.set('n', '<leader>cc', '<cmd>Telescope colorscheme<CR>')
end
},
{

60
lua/plugins/wk.lua Normal file
View File

@@ -0,0 +1,60 @@
-- maps.lua
local maps = {}
function maps.term()
vim.api.nvim_set_keymap('n', '<leader>t', '<C-w>s<C-w>j :terminal<CR>:res 5<CR>i',
{ noremap = false, desc = "Open and move to terminal" })
vim.api.nvim_set_keymap('t', 'ß<C-N>', '<C-\\><C-N>', { noremap = true, desc = "Enter normal mode in terminal" })
end
function maps.fixIndent()
vim.api.nvim_set_keymap('v', '<', '<gv', { noremap = true, desc = "Remove identation level" })
vim.api.nvim_set_keymap('v', '>', '>gv', { noremap = true, desc = "Add identation level" })
end
function maps.moveByRow()
-- When text is wrapped, move by terminal rows, not lines, unles a count is provided
vim.api.nvim_set_keymap('n', 'j', 'v:count == 0 ? \'gj\' : \'j\'',
{ silent = true, expr = true, desc = "Go down 1 line" })
vim.api.nvim_set_keymap('n', 'k', 'v:count == 0 ? \'gk\' : \'k\'',
{ silent = true, expr = true, desc = "Go up 1 line" })
end
function maps.centeredSearch()
vim.api.nvim_set_keymap('n', 'n', 'nzzzv', { noremap = true, desc = "Search next" })
vim.api.nvim_set_keymap('n', 'N', 'Nzzzv', { noremap = true, desc = "Search previous" })
end
function maps.init()
vim.g.mapleader = " "
vim.api.nvim_set_keymap('n', '<leader>b', '<cmd>Lexplore | vert res 30<CR>',
{ noremap = true, desc = "Open file explorer" })
maps.term()
maps.fixIndent()
maps.moveByRow()
maps.centeredSearch()
end
return {
"folke/which-key.nvim",
event = "VeryLazy",
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
config = function()
require("which-key").setup({
preset = "helix"
})
local wk = require("which-key")
maps.init()
end
}