-- 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', '' }, }, }, 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 = { '', '<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, }