98 lines
2.8 KiB
Lua
98 lines
2.8 KiB
Lua
return {
|
|
{
|
|
"mfussenegger/nvim-dap",
|
|
dependencies = {
|
|
{
|
|
"igorlfs/nvim-dap-view",
|
|
---@module 'dap-view'
|
|
---@type dapview.Config
|
|
opts = {
|
|
auto_toggle = true,
|
|
switchbuf = "useopen,uselast",
|
|
winbar = {
|
|
sections = { "watches", "scopes", "breakpoints", "repl", "console" },
|
|
controls = {
|
|
enabled = true,
|
|
},
|
|
},
|
|
windows = {
|
|
terminal = {
|
|
start_hidden = true,
|
|
}
|
|
}
|
|
},
|
|
},
|
|
},
|
|
config = function()
|
|
local dap = require("dap")
|
|
|
|
dap.adapters.codelldb = {
|
|
type = "executable",
|
|
command = "codelldb",
|
|
}
|
|
|
|
dap.listeners.before['event_initialized']['toggle_lsp_virtual_text'] = function()
|
|
vim.lsp.inlay_hint.enable(false)
|
|
end
|
|
|
|
dap.listeners.after['event_terminated']['toggle_lsp_virtual_text'] = function()
|
|
vim.lsp.inlay_hint.enable(true)
|
|
end
|
|
|
|
require("nvim-dap-virtual-text").setup()
|
|
end,
|
|
keys = {
|
|
{
|
|
"<leader>dd",
|
|
function()
|
|
local dap = require("dap")
|
|
if dap.status() == "" then
|
|
dap.run_last()
|
|
else
|
|
dap.restart()
|
|
end
|
|
end,
|
|
desc = "Run last or restart debugger"
|
|
},
|
|
{ "<leader>db", function() require("dap").toggle_breakpoint() end, desc = "Toggle breakpoint" },
|
|
{
|
|
"<leader>dB",
|
|
function()
|
|
vim.ui.input({ prompt = "Breakpoint condition: " }, function(input)
|
|
require("dap").set_breakpoint(input)
|
|
end)
|
|
end,
|
|
desc = "Conditional Breakpoint",
|
|
},
|
|
{ "<leader>dw", function() require("dap-view").add_expr() end, desc = "Watch expresion under cursor", mode = { "n", "v" } },
|
|
{
|
|
"<leader>dW",
|
|
function()
|
|
vim.ui.input({ prompt = "Watch expresion: " }, function(input)
|
|
require("dap-view").add_expr(input)
|
|
end)
|
|
end,
|
|
desc = "Watch expression",
|
|
},
|
|
{ "<leader>dj", function() require("dap").step_over() end, desc = "Step over" },
|
|
{ "<leader>dJ", function() require("dap").continue() end, desc = "Continue" },
|
|
{ "<leader>dl", function() require("dap").step_into() end, desc = "Step into" },
|
|
{ "<leader>dk", function() require("dap").step_out() end, desc = "Step out" },
|
|
{ "<leader>dh", function() require("dap.ui.widgets").hover() end, desc = "Show expresion under cursor" },
|
|
{ "<leader>dx", function() require("dap").clear_breakpoints() end, desc = "Clear breakpoint" },
|
|
{ "<leader>dX", function() require("dap").terminate() end, desc = "Terminate" },
|
|
{ "<leader>ud", function() require("dap-view").toggle(true) end, desc = "Toggle dap-view" },
|
|
}
|
|
},
|
|
{
|
|
"theHamsta/nvim-dap-virtual-text",
|
|
dependencies = { "mfussenegger/nvim-dap", "nvim-treesitter/nvim-treesitter" },
|
|
config = function()
|
|
require('nvim-dap-virtual-text').setup({
|
|
only_first_definition = false,
|
|
all_references = true,
|
|
virt_text_pos = "eol",
|
|
})
|
|
end
|
|
},
|
|
}
|