144 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			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,
 | |
| }
 |