126 lines
3.5 KiB
Lua
126 lines
3.5 KiB
Lua
-- Debugging Support
|
|
return {
|
|
-- https://github.com/rcarriga/nvim-dap-ui
|
|
'rcarriga/nvim-dap-ui',
|
|
event = 'VeryLazy',
|
|
dependencies = {
|
|
-- https://github.com/mfussenegger/nvim-dap
|
|
'mfussenegger/nvim-dap',
|
|
-- https://github.com/nvim-neotest/nvim-nio
|
|
'nvim-neotest/nvim-nio',
|
|
-- https://github.com/theHamsta/nvim-dap-virtual-text
|
|
'theHamsta/nvim-dap-virtual-text', -- inline variable text while debugging
|
|
-- https://github.com/nvim-telescope/telescope-dap.nvim
|
|
'nvim-telescope/telescope-dap.nvim', -- telescope integration with dap
|
|
},
|
|
opts = {
|
|
controls = {
|
|
element = "repl",
|
|
enabled = false,
|
|
icons = {
|
|
disconnect = "",
|
|
pause = "",
|
|
play = "",
|
|
run_last = "",
|
|
step_back = "",
|
|
step_into = "",
|
|
step_out = "",
|
|
step_over = "",
|
|
terminate = ""
|
|
}
|
|
},
|
|
element_mappings = {},
|
|
expand_lines = true,
|
|
floating = {
|
|
border = "single",
|
|
mappings = {
|
|
close = { "q", "<Esc>" }
|
|
}
|
|
},
|
|
force_buffers = true,
|
|
icons = {
|
|
collapsed = "",
|
|
current_frame = "",
|
|
expanded = ""
|
|
},
|
|
layouts = {
|
|
{
|
|
elements = {
|
|
{
|
|
id = "scopes",
|
|
size = 0.50
|
|
},
|
|
{
|
|
id = "stacks",
|
|
size = 0.30
|
|
},
|
|
{
|
|
id = "watches",
|
|
size = 0.10
|
|
},
|
|
{
|
|
id = "breakpoints",
|
|
size = 0.10
|
|
}
|
|
},
|
|
size = 40,
|
|
position = "left", -- Can be "left" or "right"
|
|
},
|
|
{
|
|
elements = {
|
|
"repl",
|
|
"console",
|
|
},
|
|
size = 10,
|
|
position = "bottom", -- Can be "bottom" or "top"
|
|
}
|
|
},
|
|
mappings = {
|
|
edit = "e",
|
|
expand = { "<CR>", "<2-LeftMouse>" },
|
|
open = "o",
|
|
remove = "d",
|
|
repl = "r",
|
|
toggle = "t"
|
|
},
|
|
render = {
|
|
indent = 1,
|
|
max_value_lines = 100
|
|
}
|
|
},
|
|
config = function (_, opts)
|
|
local dap = require('dap')
|
|
require('dapui').setup(opts)
|
|
|
|
-- Customize breakpoint signs
|
|
vim.api.nvim_set_hl(0, "DapStoppedHl", { fg = "#98BB6C", bg = "#2A2A2A", bold = true })
|
|
vim.api.nvim_set_hl(0, "DapStoppedLineHl", { bg = "#204028", bold = true })
|
|
vim.fn.sign_define('DapStopped', { text='', texthl='DapStoppedHl', linehl='DapStoppedLineHl', numhl= '' })
|
|
vim.fn.sign_define('DapBreakpoint', { text='', texthl='DiagnosticSignError', linehl='', numhl='' })
|
|
vim.fn.sign_define('DapBreakpointCondition', { text='', texthl='DiagnosticSignWarn', linehl='', numhl='' })
|
|
vim.fn.sign_define('DapBreakpointRejected', { text='', texthl='DiagnosticSignError', linehl='', numhl= '' })
|
|
vim.fn.sign_define('DapLogPoint', { text='', texthl='DiagnosticSignInfo', linehl='', numhl= '' })
|
|
|
|
dap.listeners.after.event_initialized["dapui_config"] = function()
|
|
require('dapui').open()
|
|
end
|
|
|
|
dap.listeners.before.event_terminated["dapui_config"] = function()
|
|
-- Commented to prevent DAP UI from closing when unit tests finish
|
|
-- require('dapui').close()
|
|
end
|
|
|
|
dap.listeners.before.event_exited["dapui_config"] = function()
|
|
-- Commented to prevent DAP UI from closing when unit tests finish
|
|
-- require('dapui').close()
|
|
end
|
|
|
|
-- Add dap configurations based on your language/adapter settings
|
|
-- https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation
|
|
-- dap.configurations.xxxxxxxxxx = {
|
|
-- {
|
|
-- },
|
|
-- }
|
|
end
|
|
}
|
|
|