kickstart.nvim/lua/custom/plugins/nvim-dap-ui.lua

144 lines
4.0 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.java = {
{
name = 'Debug Launch (2GB)',
type = 'java',
request = 'launch',
vmArgs = '' .. '-Xmx2g ',
},
{
name = 'Debug Attach (8000)',
type = 'java',
request = 'attach',
hostName = '127.0.0.1',
port = 8000,
},
{
name = 'Debug Attach (5005)',
type = 'java',
request = 'attach',
hostName = '127.0.0.1',
port = 5005,
},
}
end,
}