require "nvchad.mappings" local map = vim.keymap.set local M = {} M.General = function() map("n", ";", ":", { desc = "general enter command mode", nowait = true }) map("v", ">", ">gv", { desc = "general indent" }) -- map("n", "", "h", { desc = "switch Window left" }) -- map("n", "", "l", { desc = "switch Window right" }) -- map("n", "", "j", { desc = "switch Window down" }) -- map("n", "", "k", { desc = "switch Window up" }) map("n", "", "TmuxNavigateLeft", { desc = "switch Window left" }) map("n", "", "TmuxNavigateRight", { desc = "switch Window right" }) map("n", "", "TmuxNavigateDown ", { desc = "switch Window down" }) map("n", "", "TmuxNavigateUp", { desc = "switch Window up" }) map("n", "K", "Lspsaga hover_doc", { desc = "LSPSaga Hover" }) map("n", "]d", function() vim.diagnostic.goto_next() end, { desc = "LSP Next Diagnostic" }) map("n", "[d", function() vim.diagnostic.goto_prev() end, { desc = "LSP Prev Diagnostic" }) map("n", "lf", "Lspsaga show_cursor_diagnostics", { desc = "LSPSaga floating diagnostic" }) map("n", "gr", "Lspsaga finder ref", { desc = "LSPSaga search references" }) map("n", "gi", "Lspsaga finder imp", { desc = "LSPSaga search implementation" }) map("n", "gd", "Lspsaga finder def", { desc = "LSPSaga search definition" }) map("n", "rr", "Lspsaga rename", { desc = "LSPSaga rename" }) map("n", "ci", "Lspsaga incoming_calls", { desc = "LSPSaga incoming calls" }) map("n", "co", "Lspsaga outgoing_calls", { desc = "LSPSaga outgoing calls" }) map("n", "ca", "Lspsaga code_action", { desc = "LSPSaga code action" }) map("n", "", "Lspsaga outline", { desc = "LSPSaga outline" }) map("n", "sm", require("grapple").toggle, { desc = "Grapple Toggle" }) map("n", "sn", function() require("grapple").cycle_tags "next" end, { desc = "Grapple cycle next" }) map("n", "sN", function() require("grapple").cycle_tags "prev" end, { desc = "Grapple cycle prev" }) map("n", "sM", "Grapple open_tags", { desc = "Grapple View tags" }) end M.Ufo = function() map("n", "zR", require("ufo").openAllFolds, { desc = "UFO Open All Folds" }) map("n", "zM", require("ufo").closeAllFolds, { desc = "UFO Close All Folds" }) end M.Dap = function() map("n", "db", " DapToggleBreakpoint ", { desc = "dap Toggle Breakpoint" }) map("n", "dus", function() local widgets = require "dap.ui.widgets" local sidebar = widgets.sidebar(widgets.scopes) sidebar.open() end, { desc = "dap Open debugging sidebar" }) map("n", "", function() require("dap").continue() end, { desc = "dap Debug Program" }) map("n", "", function() require("dap").step_over() end, { desc = "dap Step Over" }) map("n", "", function() require("dap").step_into() end, { desc = "dap Step Into" }) map("n", "", function() require("dap").step_out() end, { desc = "dap Step Out" }) map("n", "lp", function() require("dap").set_breakpoint(nil, nil, vim.fn.input "Log point message: ") end, { desc = "dap Set Breakpoint with Mesage?" }) map("n", "dr", function() require("dap").repl.open() end, { desc = "dap Open REPL" }) map("n", "dl", function() require("dap").run_last() end, { desc = "dap Run Last" }) map("n", "dp", function() require("dap.ui.widgets").preview() end, { desc = "dap Preview UI" }) map("n", "dh", function() require("dap.ui.widgets").hover() end, { desc = "dap Hover UI" }) map("n", "do", function() require("dapui").toggle() end, { desc = "dap Toggle Debug UI" }) map("n", "df", function() local widgets = require "dap.ui.widgets" widgets.centered_float(widgets.frames) end, { desc = "dap Open Frames" }) map("n", "ds", function() local widgets = require "dap.ui.widgets" widgets.centered_float(widgets.scopes) end, { desc = "dap Open Scopes" }) end M.Dap_python = function() map("n", "dpr", function() require("dap-python").test_method() end, { desc = "dap_python Test Method" }) end M.Dap_go = function() map("n", "dpr", function() require("dap-go").debug_test() end, { desc = "dap_go Test Method" }) end M.Crates = function() map("n", "rcu", function() require("crates").upgrade_all_crates() end, { desc = "crates update crates" }) end M.LazyGit = function() map("n", "gg", function() vim.cmd ":LazyGit" end, { desc = "lazygit open lazygit" }) end M.Hop = function() map("n", "t", function() require("hop").hint_words { multi_windows = true } end, { desc = "hop Hop across windows", remap = true }) map("n", "T", function() require("hop").hint_char2 { multi_windows = true } end, { desc = "hop Hop to chars across windows", remap = true, }) end M.Copilot = function() map("i", "", function() require("copilot.suggestion").accept() end, { desc = "copilot Accept Suggestion", "opts = { remap = true }" }) map("i", "", function() require("copilot.suggestion").next() end, { desc = "copilot Next Suggestion", "opts = { remap = true }" }) map("i", "", function() require("copilot.suggestion").prev() end, { desc = "copilot rev Suggestion", "opts = { remap = true }" }) map("i", "", function() require("copilot.suggestion").dismiss() end, { desc = "copilot Dismiss Suggestion", "opts = { remap = true }" }) end M.Markdown = function() map("n", "cb", function() require("markdown-togglecheck").toggle() end, { desc = "markdown Toggle Checkmark" }) end M.Obsidian = function() map("n", "gf", function() return require("obsidian").util.gf_passthrough() end, { desc = "obsidian Follow Link", "opts = { noremap = false, expr = true, buffer = true }" }) map("n", "cb", function() return require("obsidian").util.toggle_checkbox() end, { desc = "obsidian Toggle Checkmark", "opts = { buffer = trueue, remap = true }" }) end M.Trouble = function() map("n", "dx", "Trouble diagnostics toggle", { desc = "Trouble Diagnostics" }) map("n", "cs", "Trouble qflist toggle", { desc = "Symbols (Trouble)" }) map("n", "dQ", "Trouble symbols toggle focus=false", { desc = "Quickfix List (Trouble)" }) end return M