nvim: which-key

This commit is contained in:
mequidis
2023-05-26 13:16:18 +03:00
parent 0baf29a183
commit e8fa8e191a
3 changed files with 92 additions and 64 deletions

View File

@ -13,150 +13,148 @@ vim.keymap.set("n", "J", "mzJ`z")
vim.keymap.set("t", "<Esc>", "<C-\\><C-n>") vim.keymap.set("t", "<Esc>", "<C-\\><C-n>")
-- movement -- movement
vim.keymap.set("n", "<C-h>", "<cmd>wincmd h<CR>") vim.keymap.set("n", "<C-h>", "<cmd>wincmd h<CR>", { desc = "Focus Left" })
vim.keymap.set("n", "<C-j>", "<cmd>wincmd j<CR>") vim.keymap.set("n", "<C-j>", "<cmd>wincmd j<CR>", { desc = "Focus Down" })
vim.keymap.set("n", "<C-k>", "<cmd>wincmd k<CR>") vim.keymap.set("n", "<C-k>", "<cmd>wincmd k<CR>", { desc = "Focus Up" })
vim.keymap.set("n", "<C-l>", "<cmd>wincmd l<CR>") vim.keymap.set("n", "<C-l>", "<cmd>wincmd l<CR>", { desc = "Focus Right" })
-- basics -- basics
vim.keymap.set("n", "<leader>f", "<cmd>Telescope find_files<CR>") vim.keymap.set("n", "<leader>f", "<cmd>Telescope find_files<CR>", { desc = "Find Files" })
vim.keymap.set("n", "<leader>F", "<cmd>NvimTreeToggle<CR>") vim.keymap.set("n", "<leader>F", "<cmd>NvimTreeToggle<CR>", { desc = "Toggle File Manager" })
-- toggle term -- toggle term
vim.keymap.set("n", "<leader>c", "<cmd>ToggleTermToggleAll<CR>") vim.keymap.set("n", "<leader>c", "<cmd>ToggleTermToggleAll<CR>", { desc = "Toggle All Terminals" })
-- vim.keymap.set("n", "<leader>C", "<cmd>ToggleTerm<CR>") -- vim.keymap.set("n", "<leader>C", "<cmd>ToggleTerm<CR>")
vim.keymap.set("n", "<leader>C", ":ToggleTerm<CR>") vim.keymap.set("n", "<leader>C", ":ToggleTerm<CR>", { desc = "Toggle Terminal" })
-- frequent actions -- frequent actions
vim.keymap.set("n", "<leader>ar", "<cmd>source ~/.config/nvim/init.lua<CR>") vim.keymap.set("n", "<leader>ar", "<cmd>source ~/.config/nvim/init.lua<CR>", { desc = "Reload Config" })
vim.keymap.set("n", "<leader>ac", "<cmd>Telescope find_files cwd=~/.config/nvim<CR>") vim.keymap.set("n", "<leader>ac", "<cmd>Telescope find_files cwd=~/.config/nvim<CR>", { desc = "Find Config Files" })
vim.keymap.set("n", "<leader>an", "<cmd>NoNeckPain<CR>") vim.keymap.set("n", "<leader>an", "<cmd>NoNeckPain<CR>", { desc = "No Neck Pain" })
-- telescope -- telescope
vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>") vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "Telescope" })
vim.keymap.set("n", "<leader>tw", "<cmd>Telescope lsp_dynamic_workspace_symbols<CR>") vim.keymap.set("n", "<leader>tw", "<cmd>Telescope lsp_dynamic_workspace_symbols<CR>", { desc = "Workspace Symbols" })
vim.keymap.set("n", "<leader>to", "<cmd>Telescope oldfiles<CR>") vim.keymap.set("n", "<leader>to", "<cmd>Telescope oldfiles<CR>", { desc = "Old Files" })
vim.keymap.set("n", "<leader>tg", "<cmd>Telescope live_grep<CR>") vim.keymap.set("n", "<leader>tg", "<cmd>Telescope live_grep<CR>", { desc = "Grep" })
vim.keymap.set("n", "<leader>ts", "<cmd>Telescope treesitter<CR>") vim.keymap.set("n", "<leader>ts", "<cmd>Telescope treesitter<CR>", { desc = "Tree Sitter" })
vim.keymap.set("n", "<leader>td", "<cmd>Telescope lsp_document_symbols<CR>") vim.keymap.set("n", "<leader>td", "<cmd>Telescope lsp_document_symbols<CR>", { desc = "Document Symbols" })
-- git -- git
vim.keymap.set("n", "<leader>V", "<cmd>Git<CR>") vim.keymap.set("n", "<leader>V", "<cmd>Git<CR>", { desc = "Status Board" })
vim.keymap.set("n", "<leader>vA", ":Git add ") vim.keymap.set("n", "<leader>vA", ":Git add ", { desc = "Add" })
vim.keymap.set("n", "<leader>va", "<cmd>Git add .<CR>") vim.keymap.set("n", "<leader>va", "<cmd>Git add .<CR>", { desc = "Add All" })
vim.keymap.set("n", "<leader>vc", "<cmd>Git commit<CR>") vim.keymap.set("n", "<leader>vc", "<cmd>Git commit<CR>", { desc = "Commit" })
vim.keymap.set("n", "<leader>vf", "<cmd>Git fetch<CR>") vim.keymap.set("n", "<leader>vf", "<cmd>Git fetch<CR>", { desc = "Fetch" })
vim.keymap.set("n", "<leader>vg", ":Git ") vim.keymap.set("n", "<leader>vg", ":Git ", { desc = "Enter Command" })
vim.keymap.set("n", "<leader>vl", "<cmd>Git pull<CR>") vim.keymap.set("n", "<leader>vl", "<cmd>Git pull<CR>", { desc = "Pull" })
vim.keymap.set("n", "<leader>vp", "<cmd>Git push<CR>") vim.keymap.set("n", "<leader>vp", "<cmd>Git push origin HEAD<CR>", { desc = "Push" })
vim.keymap.set("n", "<leader>vs", "<cmd>Git<CR>")
-- dev -- dev
vim.keymap.set("n", "<leader>gd", "<cmd>Telescope lsp_definitions<CR>") vim.keymap.set("n", "<leader>gd", "<cmd>Telescope lsp_definitions<CR>", { desc = "Go To Definition" })
vim.keymap.set("n", "<leader>gi", "<cmd>Telescope lsp_implementations<CR>") vim.keymap.set("n", "<leader>gi", "<cmd>Telescope lsp_implementations<CR>", { desc = "Go To Implementations" })
vim.keymap.set("n", "<leader>gr", "<cmd>Telescope lsp_references<CR>") vim.keymap.set("n", "<leader>gr", "<cmd>Telescope lsp_references<CR>", { desc = "Go To References" })
vim.keymap.set("n", "<leader>gq", "<cmd>Telescope diagnostics<CR>") vim.keymap.set("n", "<leader>gq", "<cmd>Telescope diagnostics<CR>", { desc = "Show Diagnostics" })
vim.keymap.set("n", "<leader>gs", "<cmd>LspRestart<CR>") vim.keymap.set("n", "<leader>gs", "<cmd>LspRestart<CR>", { desc = "Restart LSP" })
vim.keymap.set("n", "<leader>gf", "<cmd>Format<CR>") vim.keymap.set("n", "<leader>gf", "<cmd>Format<CR>", { desc = "Format" })
vim.keymap.set("n", "<leader>gF", "<cmd>FormatWrite<CR>") vim.keymap.set("n", "<leader>ge", "<cmd>TroubleToggle<CR>", { desc = "Toggle Trouble" })
vim.keymap.set("n", "<leader>ge", "<cmd>TroubleToggle<CR>")
vim.keymap.set("n", "<leader>ga", function() vim.keymap.set("n", "<leader>ga", function()
vim.lsp.buf.code_action() vim.lsp.buf.code_action()
end) end, { desc = "Code Actions" })
vim.keymap.set("n", "<leader>gD", function() vim.keymap.set("n", "<leader>gD", function()
vim.lsp.buf.declaration() vim.lsp.buf.declaration()
end) end, { desc = "Go To Declaration" })
vim.keymap.set("n", "<leader>gk", function() vim.keymap.set("n", "<leader>gk", function()
vim.lsp.buf.hover() vim.lsp.buf.hover()
end) end, { desc = "Hover" })
vim.keymap.set("n", "<leader>gt", function() vim.keymap.set("n", "<leader>gt", function()
vim.lsp.buf.type_definition() vim.lsp.buf.type_definition()
end) end, { desc = "Go To Type Definition" })
vim.keymap.set("n", "<leader>gn", function() vim.keymap.set("n", "<leader>gn", function()
vim.lsp.buf.rename() vim.lsp.buf.rename()
end) end, { desc = "Rename" })
vim.keymap.set("n", "[d", function() vim.keymap.set("n", "[d", function()
vim.diagnostic.goto_prev() vim.diagnostic.goto_prev()
end) end, { desc = "Previous Diagnostic" })
vim.keymap.set("n", "]d", function() vim.keymap.set("n", "]d", function()
vim.diagnostic.goto_next() vim.diagnostic.goto_next()
end) end, { desc = "Next Diagnostic" })
-- neotest -- neotest
vim.keymap.set("n", "<leader>na", function() vim.keymap.set("n", "<leader>na", function()
require("neotest").run.attach() require("neotest").run.attach()
end) end, { desc = "Attach Tests" })
vim.keymap.set("n", "<leader>nf", function() vim.keymap.set("n", "<leader>nf", function()
require("neotest").run.run(vim.fn.expand("%")) require("neotest").run.run(vim.fn.expand("%"))
end) end, { desc = "Run Buffer Tests" })
vim.keymap.set("n", "<leader>nF", function() vim.keymap.set("n", "<leader>nF", function()
require("neotest").run.run({ vim.fn.expand("%"), strategy = "dap" }) require("neotest").run.run({ vim.fn.expand("%"), strategy = "dap" })
end) end, { desc = "Debug Buffer Tests" })
vim.keymap.set("n", "<leader>nl", function() vim.keymap.set("n", "<leader>nl", function()
require("neotest").run.run_last() require("neotest").run.run_last()
end) end, { desc = "Run Last Tests" })
vim.keymap.set("n", "<leader>nL", function() vim.keymap.set("n", "<leader>nL", function()
require("neotest").run.run_last({ strategy = "dap" }) require("neotest").run.run_last({ strategy = "dap" })
end) end, { desc = "Debug Last Test" })
vim.keymap.set("n", "<leader>nn", function() vim.keymap.set("n", "<leader>nn", function()
require("neotest").run.run() require("neotest").run.run()
end) end, { desc = "Run All Tests" })
vim.keymap.set("n", "<leader>nN", function() vim.keymap.set("n", "<leader>nN", function()
require("neotest").run.run({ strategy = "dap" }) require("neotest").run.run({ strategy = "dap" })
end) end, { desc = "Debug All Tests" })
vim.keymap.set("n", "<leader>no", function() vim.keymap.set("n", "<leader>no", function()
require("neotest").output.open({ enter = true }) require("neotest").output.open({ enter = true })
end) end, { desc = "Show Output" })
vim.keymap.set("n", "<leader>nS", function() vim.keymap.set("n", "<leader>nS", function()
require("neotest").run.stop() require("neotest").run.stop()
end) end, { desc = "Stop Tests" })
vim.keymap.set("n", "<leader>ns", function() vim.keymap.set("n", "<leader>ns", function()
require("neotest").summary.toggle() require("neotest").summary.toggle()
end) end, { desc = "Toggle Summary" })
-- telekasten -- telekasten
vim.keymap.set("n", "<leader>z", function() vim.keymap.set("n", "<leader>z", function()
require("telekasten").panel() require("telekasten").panel()
end) end, { desc = "Telekasten" })
-- refactoring -- refactoring
vim.keymap.set("n", "<leader>rv", function() vim.keymap.set("n", "<leader>rv", function()
require("refactoring").debug.print_var({ normal = true }) require("refactoring").debug.print_var({ normal = true })
end) end, { desc = "Add Debug Pring" })
vim.keymap.set("n", "<leader>rc", function() vim.keymap.set("n", "<leader>rc", function()
require("refactoring").debug.cleanup() require("refactoring").debug.cleanup()
end) end, { desc = "Cleanup" })
vim.keymap.set("v", "<leader>rr", function() vim.keymap.set("v", "<leader>rr", function()
require("refactoring").select_refactor() require("refactoring").select_refactor()
end) end, { desc = "Select Refactor" })
-- neogen -- neogen
vim.keymap.set("n", "<leader>rn", function() vim.keymap.set("n", "<leader>rn", function()
require("neogen").generate() require("neogen").generate()
end) end, { desc = "Add Documentation" })
-- dap -- dap
vim.keymap.set("n", "<leader>dc", function() vim.keymap.set("n", "<leader>dc", function()
require("dap").continue() require("dap").continue()
end) end, { desc = "Continue" })
vim.keymap.set("n", "<leader>dn", function() vim.keymap.set("n", "<leader>dn", function()
require("dap").step_over() require("dap").step_over()
end) end, { desc = "Step Over" })
vim.keymap.set("n", "<leader>di", function() vim.keymap.set("n", "<leader>di", function()
require("dap").step_into() require("dap").step_into()
end) end, { desc = "Step Into" })
vim.keymap.set("n", "<leader>do", function() vim.keymap.set("n", "<leader>do", function()
require("dap").step_out() require("dap").step_out()
end) end, { desc = "Step Out" })
vim.keymap.set("n", "<leader>db", function() vim.keymap.set("n", "<leader>db", function()
require("dap").toggle_breakpoint() require("dap").toggle_breakpoint()
end) end, { desc = "Toggle Breakpoint" })
vim.keymap.set("n", "<leader>dr", function() vim.keymap.set("n", "<leader>dr", function()
require("dap").repl.open() require("dap").repl.open()
end) end, { desc = "Open Repl" })
vim.keymap.set("n", "<leader>dl", function() vim.keymap.set("n", "<leader>dl", function()
require("dap").run_last() require("dap").run_last()
end) end, { desc = "Run Last" })
vim.keymap.set("n", "<leader>dq", function() vim.keymap.set("n", "<leader>dq", function()
require("dap").close() require("dap").close()
end) end, { desc = "Quit Debug" })

View File

@ -262,4 +262,22 @@ require("lazy").setup({
require("plugins.no-neck-pain") require("plugins.no-neck-pain")
end, end,
}, },
{
"folke/which-key.nvim",
key = {
"<leader>"
},
config = function()
require("plugins.which-key")
end,
},
{
"iamcco/markdown-preview.nvim",
config = function()
require("plugins.markdown-preview")
end,
},
}) })

View File

@ -0,0 +1,12 @@
local wk = require("which-key")
wk.register({
a = { name = "actions" },
c = { name = "terminal" },
d = { name = "debug" },
f = { name = "files" },
g = { name = "lsp" },
n = { name = "testing" },
r = { name = "refactoring" },
t = { name = "telescope" },
v = { name = "vcs" },
}, { prefix = "<leader>" })