Files
dots/.config/nvim/lua/mappings.lua
2023-07-08 15:20:43 +03:00

155 lines
6.3 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", "<Esc>", "<C-\\><C-n>")
-- movement
vim.keymap.set("n", "<C-h>", "<cmd>wincmd h<CR>", { desc = "Focus Left" })
vim.keymap.set("n", "<C-j>", "<cmd>wincmd j<CR>", { desc = "Focus Down" })
vim.keymap.set("n", "<C-k>", "<cmd>wincmd k<CR>", { desc = "Focus Up" })
vim.keymap.set("n", "<C-l>", "<cmd>wincmd l<CR>", { desc = "Focus 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" })
-- toggle term
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", ":ToggleTerm<CR>", { desc = "Toggle Terminal" })
-- frequent actions
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>", { desc = "Find Config Files" })
vim.keymap.set("n", "<leader>an", "<cmd>NoNeckPain<CR>", { desc = "No Neck Pain" })
-- 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" })
-- git
vim.keymap.set("n", "<leader>V", "<cmd>Git<CR>", { desc = "Status Board" })
vim.keymap.set("n", "<leader>vA", ":Git add ", { desc = "Add" })
vim.keymap.set("n", "<leader>va", "<cmd>Git add .<CR>", { desc = "Add All" })
vim.keymap.set("n", "<leader>vc", "<cmd>Git commit<CR>", { desc = "Commit" })
vim.keymap.set("n", "<leader>vf", "<cmd>Git fetch<CR>", { desc = "Fetch" })
vim.keymap.set("n", "<leader>vg", ":Git ", { desc = "Enter Command" })
vim.keymap.set("n", "<leader>vl", "<cmd>Git pull<CR>", { desc = "Pull" })
vim.keymap.set("n", "<leader>vp", "<cmd>Git push origin HEAD<CR>", { desc = "Push" })
-- 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>TroubleToggle<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" })
-- 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" })