Files
dots/.config/nvim/lua/config/mappings.lua
2024-12-06 14:01:53 +02:00

197 lines
8.0 KiB
Lua

-- leader
vim.g.mapleader = " "
-- visual block indenting
vim.keymap.set("v", "<", "<gv")
vim.keymap.set("v", ">", ">gv")
-- centered cursor
vim.keymap.set("n", "n", "nzz")
vim.keymap.set("n", "N", "Nzz")
vim.keymap.set("n", "J", "mzJ`z")
-- escape terminal mode
vim.keymap.set("t", "<C-a>", "<C-\\><C-n>")
-- movement
vim.keymap.set("n", "<C-h>", "<cmd>wincmd h<CR>", { desc = "Move Left" })
vim.keymap.set("n", "<C-j>", "<cmd>wincmd j<CR>", { desc = "Move Down" })
vim.keymap.set("n", "<C-k>", "<cmd>wincmd k<CR>", { desc = "Move Up" })
vim.keymap.set("n", "<C-l>", "<cmd>wincmd l<CR>", { desc = "Move Right" })
-- terminal
vim.keymap.set("t", "<C-h>", "<cmd>wincmd h<CR>", { desc = "Move Left" })
vim.keymap.set("t", "<C-j>", "<cmd>wincmd j<CR>", { desc = "Move Down" })
vim.keymap.set("t", "<C-k>", "<cmd>wincmd k<CR>", { desc = "Move Up" })
vim.keymap.set("t", "<C-l>", "<cmd>wincmd l<CR>", { desc = "Move Right" })
-- basics
vim.keymap.set("n", "<leader>f", "<cmd>Telescope find_files<CR>", { desc = "Find Files" })
vim.keymap.set("n", "<leader>F", "<cmd>NvimTreeToggle<CR>", { desc = "Toggle File Manager" })
vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "Buffers" })
-- toggle term
vim.keymap.set("n", "<leader>c", "<cmd>ToggleTermToggleAll<CR>", { desc = "Toggle All Terminals" })
vim.keymap.set("n", "<C-s>", "<cmd>ToggleTermToggleAll<CR>", { desc = "Toggle All Terminal" })
vim.keymap.set("t", "<C-s>", "<cmd>ToggleTermToggleAll<CR>", { desc = "Toggle All Terminal" })
-- vim.keymap.set("n", "<leader>C", "<cmd>ToggleTerm<CR>")
vim.keymap.set("n", "<leader>C", ":ToggleTerm<CR>", { desc = "Toggle Terminal" })
-- frequent actions
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>", { desc = "No Neck Pain" })
vim.keymap.set("n", "<leader>ag", "<cmd>Neogit<CR>", { desc = "Neogit" })
vim.keymap.set("n", "<leader>af", "<cmd>NvimTreeFindFile<CR>", { desc = "Find File In File Manager" })
vim.keymap.set("n", "<leader>am", function()
require("maximize").toggle()
end, { desc = "Maximize" })
vim.keymap.set("n", "<leader>ar", function()
require("gitlab").review()
end, { desc = "Gitlab Review" })
-- telescope
vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "Telescope" })
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>", { desc = "Old Files" })
vim.keymap.set("n", "<leader>tg", "<cmd>Telescope live_grep<CR>", { desc = "Grep" })
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>", { desc = "Document Symbols" })
-- dev
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>", { desc = "Go To Implementations" })
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>", { desc = "Show Diagnostics" })
vim.keymap.set("n", "<leader>gs", "<cmd>LspRestart<CR>", { desc = "Restart LSP" })
vim.keymap.set("n", "<leader>gf", "<cmd>Format<CR>", { desc = "Format" })
vim.keymap.set("n", "<leader>ge", "<cmd>Trouble diagnostics<CR>", { desc = "Toggle Trouble" })
vim.keymap.set("n", "<leader>ga", function()
vim.lsp.buf.code_action()
end, { desc = "Code Actions" })
vim.keymap.set("n", "<leader>gD", function()
vim.lsp.buf.declaration()
end, { desc = "Go To Declaration" })
vim.keymap.set("n", "<leader>gk", function()
vim.lsp.buf.hover()
end, { desc = "Hover" })
vim.keymap.set("n", "<leader>gt", function()
vim.lsp.buf.type_definition()
end, { desc = "Go To Type Definition" })
vim.keymap.set("n", "<leader>gn", function()
vim.lsp.buf.rename()
end, { desc = "Rename" })
-- vcs
vim.keymap.set("n", "<leader>vs", function()
require("gitsigns").stage_hunk()
end, { desc = "Stage Hunk" })
vim.keymap.set("n", "<leader>vr", function()
require("gitsigns").reset_hunk()
end, { desc = "Reset Hunk" })
vim.keymap.set("v", "<leader>vs", function()
require("gitsigns").stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
end, { desc = "Stage Hunk" })
vim.keymap.set("v", "<leader>vr", function()
require("gitsigns").reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
end, { desc = "Reset Hunk" })
vim.keymap.set("n", "<leader>va", function()
require("gitsigns").stage_buffer()
end, { desc = "Stage Buffer" })
vim.keymap.set("n", "<leader>vu", function()
require("gitsigns").undo_stage_hunk()
end, { desc = "Undo Stage Hunk" })
vim.keymap.set("n", "<leader>vx", function()
require("gitsigns").reset_buffer()
end, { desc = "Reset Buffer" })
vim.keymap.set("n", "<leader>vp", function()
require("gitsigns").preview_hunk()
end, { desc = "Preview Hunk" })
vim.keymap.set("n", "<leader>vb", function()
require("gitsigns").blame_line({ full = true })
end, { desc = "Blame Line" })
vim.keymap.set("n", "<leader>vB", function()
require("gitsigns").toggle_current_line_blame()
end, { desc = "Toggle Blame" })
vim.keymap.set("n", "<leader>vt", function()
require("gitsigns").toggle_deleted()
end, { desc = "Toggle Deleted" })
vim.keymap.set("n", "<leader>vd", "<cmd>DiffviewToggle<CR>", { desc = "Diff" })
-- neotest
vim.keymap.set("n", "<leader>na", function()
require("neotest").run.attach()
end, { desc = "Attach Tests" })
vim.keymap.set("n", "<leader>nf", function()
require("neotest").run.run(vim.fn.expand("%"))
end, { desc = "Run Buffer Tests" })
vim.keymap.set("n", "<leader>nF", function()
require("neotest").run.run({ vim.fn.expand("%"), strategy = "dap" })
end, { desc = "Debug Buffer Tests" })
vim.keymap.set("n", "<leader>nl", function()
require("neotest").run.run_last()
end, { desc = "Run Last Tests" })
vim.keymap.set("n", "<leader>nL", function()
require("neotest").run.run_last({ strategy = "dap" })
end, { desc = "Debug Last Test" })
vim.keymap.set("n", "<leader>nn", function()
require("neotest").run.run()
end, { desc = "Run All Tests" })
vim.keymap.set("n", "<leader>nN", function()
require("neotest").run.run({ strategy = "dap" })
end, { desc = "Debug All Tests" })
vim.keymap.set("n", "<leader>no", function()
require("neotest").output.open({ enter = true })
end, { desc = "Show Output" })
vim.keymap.set("n", "<leader>nS", function()
require("neotest").run.stop()
end, { desc = "Stop Tests" })
vim.keymap.set("n", "<leader>ns", function()
require("neotest").summary.toggle()
end, { desc = "Toggle Summary" })
-- telekasten
vim.keymap.set("n", "<leader>z", function()
require("telekasten").panel()
end, { desc = "Telekasten" })
-- refactoring
vim.keymap.set("n", "<leader>rv", function()
require("refactoring").debug.print_var({ normal = true })
end, { desc = "Add Debug Pring" })
vim.keymap.set("n", "<leader>rc", function()
require("refactoring").debug.cleanup()
end, { desc = "Cleanup" })
vim.keymap.set("v", "<leader>rr", function()
require("refactoring").select_refactor()
end, { desc = "Select Refactor" })
-- neogen
vim.keymap.set("n", "<leader>rn", function()
require("neogen").generate()
end, { desc = "Add Documentation" })
-- dap
vim.keymap.set("n", "<leader>dc", function()
require("dap").continue()
end, { desc = "Continue" })
vim.keymap.set("n", "<leader>dn", function()
require("dap").step_over()
end, { desc = "Step Over" })
vim.keymap.set("n", "<leader>di", function()
require("dap").step_into()
end, { desc = "Step Into" })
vim.keymap.set("n", "<leader>do", function()
require("dap").step_out()
end, { desc = "Step Out" })
vim.keymap.set("n", "<leader>db", function()
require("dap").toggle_breakpoint()
end, { desc = "Toggle Breakpoint" })
vim.keymap.set("n", "<leader>dr", function()
require("dap").repl.open()
end, { desc = "Open Repl" })
vim.keymap.set("n", "<leader>dl", function()
require("dap").run_last()
end, { desc = "Run Last" })
vim.keymap.set("n", "<leader>dq", function()
require("dap").close()
end, { desc = "Quit Debug" })