local view = require 'plugins.dap.dap-view' return { { 'mfussenegger/nvim-dap', dependencies = { 'theHamsta/nvim-dap-virtual-text', 'leoluz/nvim-dap-go', view.get_config(), }, ft = { 'go' }, event = 'LspAttach', keys = { { '', 'DapStepInto' }, { '', 'DapContinue' }, { '', 'DapStepOver' }, { 'dt', function() require('dap-go').debug_test() end, desc = 'Debug closest go test', }, }, config = function() require('dap').set_log_level 'TRACE' require('nvim-dap-virtual-text').setup {} local dir = vim.fn.getcwd(0) local file = vim.fn.glob(dir .. '/launch.json') local prj_confs = {} if file ~= '' then local contents = vim.fn.readblob(dir .. '/launch.json') prj_confs = vim.json.decode(contents) end local all_confs = prj_confs.configurations or {} local global_confs = require 'plugins.dap.configurations' for _, conf in ipairs(global_confs) do table.insert(all_confs, conf) end require('dap-go').setup { dap_configurations = all_confs, } end, }, { 'weissle/persistent-breakpoints.nvim', ft = { 'go' }, opts = { load_breakpoints_event = { 'BufReadPost' }, }, keys = { { 'db', 'PBToggleBreakpoint', desc = 'Toggle breakpoint' }, { 'dB', 'PBSetConditionalBreakpoint', desc = 'Set conditional breakpoint' }, { 'dl', 'PBSetLogPoint', desc = 'Set log point' }, }, }, }