debug and problems
This commit is contained in:
@@ -1,19 +1,174 @@
|
||||
-- Use native Neovim Lua keymap API
|
||||
local keymap = vim.keymap
|
||||
|
||||
keymap.set("n", "<leader>h", "<C-w>h", { noremap = true, silent = true })
|
||||
keymap.set("n", "<leader>j", "<C-w>j", { noremap = true, silent = true })
|
||||
keymap.set("n", "<leader>k", "<C-w>k", { noremap = true, silent = true })
|
||||
keymap.set("n", "<leader>l", "<C-w>l", { noremap = true, silent = true })
|
||||
keymap.set("n", "<leader>h", "<C-w>h", { noremap = true, silent = true, desc = "Window left" })
|
||||
keymap.set("n", "<leader>j", "<C-w>j", { noremap = true, silent = true, desc = "Window down" })
|
||||
keymap.set("n", "<leader>k", "<C-w>k", { noremap = true, silent = true, desc = "Window up" })
|
||||
keymap.set("n", "<leader>l", "<C-w>l", { noremap = true, silent = true, desc = "Window right" })
|
||||
|
||||
local reload = require("utils.reload")
|
||||
|
||||
vim.api.nvim_create_user_command("ReloadConfig", reload.reload, {})
|
||||
vim.keymap.set("n", "<leader><leader>r", reload.reload, { noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<leader><leader>r", reload.reload, { noremap = true, silent = true, desc = "Reload config" })
|
||||
|
||||
keymap.set("n", "<leader>ff", "<cmd>lua require('telescope.builtin').find_files()<cr>", {noremap = true, silent = true})
|
||||
keymap.set("n", "<leader>fg", "<cmd>lua require('telescope.builtin').live_grep()<cr>" , {noremap = true, silent = true})
|
||||
keymap.set("n", "<leader>fb", "<cmd>lua require('telescope.builtin').buffers()<cr>" , {noremap = true, silent = true})
|
||||
keymap.set("n", "<leader>fh", "<cmd>lua require('telescope.builtin').help_tags()<cr>" , {noremap = true, silent = true})
|
||||
keymap.set("n", "<leader>?", function()
|
||||
local ok, wk = pcall(require, "which-key")
|
||||
if not ok then
|
||||
vim.notify("which-key is not available", vim.log.levels.WARN)
|
||||
return
|
||||
end
|
||||
|
||||
local ok_show = pcall(wk.show, { keys = "<leader>", mode = "n" })
|
||||
if not ok_show then
|
||||
vim.cmd("WhichKey <leader>")
|
||||
end
|
||||
end, { noremap = true, silent = true, desc = "Leader keymaps" })
|
||||
|
||||
keymap.set("n", "<leader>ff", "<cmd>lua require('telescope.builtin').find_files()<cr>", {noremap = true, silent = true, desc = "Find files"})
|
||||
keymap.set("n", "<leader>fg", "<cmd>lua require('telescope.builtin').live_grep()<cr>", {noremap = true, silent = true, desc = "Find text"})
|
||||
keymap.set("n", "<leader>fb", "<cmd>lua require('telescope.builtin').buffers()<cr>", {noremap = true, silent = true, desc = "Find buffers"})
|
||||
keymap.set("n", "<leader>fh", "<cmd>lua require('telescope.builtin').help_tags()<cr>", {noremap = true, silent = true, desc = "Find help"})
|
||||
|
||||
keymap.set("n", "<leader>xx", "<cmd>Trouble diagnostics toggle<CR>", { noremap = true, silent = true, desc = "Problems toggle" })
|
||||
keymap.set("n", "<leader>xw", "<cmd>Trouble diagnostics toggle<CR>", { noremap = true, silent = true, desc = "Problems workspace diagnostics" })
|
||||
keymap.set("n", "<leader>xb", "<cmd>Trouble diagnostics toggle filter.buf=0<CR>", { noremap = true, silent = true, desc = "Problems buffer diagnostics" })
|
||||
keymap.set("n", "<leader>xq", "<cmd>Trouble qflist toggle<CR>", { noremap = true, silent = true, desc = "Problems quickfix" })
|
||||
keymap.set("n", "<leader>xl", "<cmd>Trouble loclist toggle<CR>", { noremap = true, silent = true, desc = "Problems location list" })
|
||||
keymap.set("n", "<leader>xr", "<cmd>Trouble lsp_references toggle<CR>", { noremap = true, silent = true, desc = "Problems references" })
|
||||
keymap.set("n", "<leader>xs", "<cmd>Trouble symbols toggle focus=false<CR>", { noremap = true, silent = true, desc = "Problems document symbols" })
|
||||
keymap.set("n", "<leader>xS", "<cmd>Trouble lsp toggle focus=false win.position=right<CR>", { noremap = true, silent = true, desc = "Problems workspace symbols" })
|
||||
|
||||
vim.keymap.set("n", "gn", vim.diagnostic.goto_next, { noremap = true, silent = true })
|
||||
|
||||
local function with_dap(fn)
|
||||
local ok, dap = pcall(require, "dap")
|
||||
if not ok then
|
||||
vim.notify("nvim-dap is not available", vim.log.levels.WARN)
|
||||
return
|
||||
end
|
||||
fn(dap)
|
||||
end
|
||||
|
||||
local function with_dapui(fn)
|
||||
local ok, dapui = pcall(require, "dapui")
|
||||
if not ok then
|
||||
vim.notify("nvim-dap-ui is not available", vim.log.levels.WARN)
|
||||
return
|
||||
end
|
||||
fn(dapui)
|
||||
end
|
||||
|
||||
keymap.set("n", "<leader>dc", function()
|
||||
with_dap(function(dap)
|
||||
dap.continue()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug continue" })
|
||||
keymap.set("n", "<leader>dr", function()
|
||||
with_dap(function(dap)
|
||||
dap.restart()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug restart" })
|
||||
keymap.set("n", "<leader>dt", function()
|
||||
with_dap(function(dap)
|
||||
dap.terminate()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug terminate" })
|
||||
keymap.set("n", "<leader>dp", function()
|
||||
with_dap(function(dap)
|
||||
dap.pause()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug pause" })
|
||||
keymap.set("n", "<leader>do", function()
|
||||
with_dap(function(dap)
|
||||
dap.step_over()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug step over" })
|
||||
keymap.set("n", "<leader>di", function()
|
||||
with_dap(function(dap)
|
||||
dap.step_into()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug step into" })
|
||||
keymap.set("n", "<leader>dO", function()
|
||||
with_dap(function(dap)
|
||||
dap.step_out()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug step out" })
|
||||
keymap.set("n", "<leader>du", function()
|
||||
with_dap(function(dap)
|
||||
dap.run_to_cursor()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug run to cursor" })
|
||||
|
||||
keymap.set("n", "<leader>db", function()
|
||||
with_dap(function(dap)
|
||||
dap.toggle_breakpoint()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug toggle breakpoint" })
|
||||
keymap.set("n", "<leader>dB", function()
|
||||
with_dap(function(dap)
|
||||
dap.set_breakpoint(vim.fn.input("Breakpoint condition: "))
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug conditional breakpoint" })
|
||||
keymap.set("n", "<leader>dl", function()
|
||||
with_dap(function(dap)
|
||||
dap.set_breakpoint(nil, nil, vim.fn.input("Log point message: "))
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug logpoint" })
|
||||
keymap.set("n", "<leader>dx", function()
|
||||
with_dap(function(dap)
|
||||
dap.clear_breakpoints()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug clear breakpoints" })
|
||||
|
||||
keymap.set("n", "<leader>dd", function()
|
||||
with_dapui(function(dapui)
|
||||
dapui.toggle()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug toggle UI" })
|
||||
keymap.set("n", "<leader>de", function()
|
||||
with_dapui(function(dapui)
|
||||
dapui.eval()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug eval" })
|
||||
keymap.set("n", "<leader>dh", function()
|
||||
with_dap(function()
|
||||
require("dap.ui.widgets").hover()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug hover" })
|
||||
keymap.set("n", "<leader>dq", function()
|
||||
with_dap(function(dap)
|
||||
dap.repl.open()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug open REPL" })
|
||||
keymap.set("n", "<leader>dQ", function()
|
||||
with_dap(function(dap)
|
||||
dap.repl.toggle()
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug toggle REPL" })
|
||||
keymap.set("n", "<leader>ds", function()
|
||||
with_dap(function(dap)
|
||||
local session = dap.session()
|
||||
if session then
|
||||
vim.notify("DAP session active", vim.log.levels.INFO)
|
||||
else
|
||||
vim.notify("No active DAP session", vim.log.levels.WARN)
|
||||
end
|
||||
end)
|
||||
end, { noremap = true, silent = true, desc = "Debug session status" })
|
||||
|
||||
keymap.set("n", "<leader>df", "<cmd>Telescope dap frames<CR>", { noremap = true, silent = true, desc = "Debug frames" })
|
||||
keymap.set("n", "<leader>dC", "<cmd>Telescope dap commands<CR>", { noremap = true, silent = true, desc = "Debug commands" })
|
||||
keymap.set("n", "<leader>dv", "<cmd>Telescope dap variables<CR>", { noremap = true, silent = true, desc = "Debug variables" })
|
||||
keymap.set("n", "<leader>dR", "<cmd>Telescope dap configurations<CR>", { noremap = true, silent = true, desc = "Debug configurations" })
|
||||
keymap.set("n", "<leader>dK", "<cmd>Telescope dap list_breakpoints<CR>", { noremap = true, silent = true, desc = "Debug breakpoints" })
|
||||
|
||||
keymap.set("n", "<leader>cg", "<cmd>CMakeGenerate<CR>", { noremap = true, silent = true, desc = "CMake generate" })
|
||||
keymap.set("n", "<leader>cb", "<cmd>CMakeBuild<CR>", { noremap = true, silent = true, desc = "CMake build" })
|
||||
keymap.set("n", "<leader>cB", "<cmd>CMakeBuild!<CR>", { noremap = true, silent = true, desc = "CMake clean build" })
|
||||
keymap.set("n", "<leader>cc", "<cmd>CMakeClean<CR>", { noremap = true, silent = true, desc = "CMake clean" })
|
||||
keymap.set("n", "<leader>ct", "<cmd>CMakeSelectBuildTarget<CR>", { noremap = true, silent = true, desc = "CMake select build target" })
|
||||
keymap.set("n", "<leader>cT", "<cmd>CMakeSelectBuildType<CR>", { noremap = true, silent = true, desc = "CMake select build type" })
|
||||
keymap.set("n", "<leader>cr", "<cmd>CMakeRun<CR>", { noremap = true, silent = true, desc = "CMake run" })
|
||||
keymap.set("n", "<leader>cd", "<cmd>CMakeDebug<CR>", { noremap = true, silent = true, desc = "CMake debug" })
|
||||
keymap.set("n", "<leader>cL", "<cmd>CMakeSelectLaunchTarget<CR>", { noremap = true, silent = true, desc = "CMake select launch target" })
|
||||
keymap.set("n", "<leader>cS", "<cmd>CMakeSettings<CR>", { noremap = true, silent = true, desc = "CMake settings" })
|
||||
|
||||
Reference in New Issue
Block a user