-- debug.lua -- -- Shows how to use the DAP plugin to debug your code. -- -- Primarily focused on configuring the debugger for Go, but can -- be extended to other languages as well. That's why it's called -- kickstart.nvim and not kitchen-sink.nvim ;) return { "mfussenegger/nvim-dap", dependencies = { -- Creates a beautiful debugger UI "rcarriga/nvim-dap-ui", -- Required dependency for nvim-dap-ui "nvim-neotest/nvim-nio", -- Installs the debug adapters for you "williamboman/mason.nvim", "jay-babu/mason-nvim-dap.nvim", -- Add your own debuggers here "leoluz/nvim-dap-go", }, keys = { -- Basic debugging keymaps, feel free to change to your liking! { "", function() require("dap").continue() end, desc = "Debug: Start/Continue", }, { "", function() require("dap").step_into() end, desc = "Debug: Step Into", }, { "", function() require("dap").step_over() end, desc = "Debug: Step Over", }, { "", function() require("dap").step_out() end, desc = "Debug: Step Out", }, { "b", function() require("dap").toggle_breakpoint() end, desc = "Debug: Toggle Breakpoint", }, { "B", function() require("dap").set_breakpoint(vim.fn.input("Breakpoint condition: ")) end, desc = "Debug: Set Breakpoint", }, -- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception. { "", function() require("dapui").toggle() end, desc = "Debug: See last session result.", }, }, config = function() local dap = require("dap") local dapui = require("dapui") require("mason-nvim-dap").setup({ -- Makes a best effort to setup the various debuggers with -- reasonable debug configurations automatic_installation = true, -- You can provide additional configuration to the handlers, -- see mason-nvim-dap README for more information handlers = {}, -- You'll need to check that you have the required things installed -- online, please don't ask me how to install them :) ensure_installed = { -- Update this to ensure that you have the debuggers for the langs you want "delve", }, }) -- Dap UI setup -- For more information, see |:help nvim-dap-ui| -- dapui.setup() -- Change breakpoint icons -- vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' }) -- vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' }) -- local breakpoint_icons = vim.g.have_nerd_font -- and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' } -- or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' } -- for type, icon in pairs(breakpoint_icons) do -- local tp = 'Dap' .. type -- local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak' -- vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl }) -- end -- dap.adapters.go = { type = "executable", command = "node", args = { os.getenv("HOME") .. "/Terminal-Stuff/vscode-go/extension/dist/debugAdapter.js", }, } dapui.setup() dap.listeners.before.attach.dapui_config = function() dapui.open() end dap.listeners.before.launch.dapui_config = function() dapui.open() end dap.listeners.before.event_terminated.dapui_config = function() dapui.close() end dap.listeners.before.event_exited.dapui_config = function() dapui.close() end -- dap.listeners.after.event_initialized["dapui_config"] = dapui.open -- dap.listeners.before.event_terminated["dapui_config"] = dapui.close -- dap.listeners.before.event_exited["dapui_config"] = dapui.close -- Install golang specific config -- require("dap-go").setup({ -- delve = { -- path = "/Users/linux_enjoyer/Terminal-Stuff/go/bin/dlv", -- cwd = nil, -- -- On Windows delve must be run attached or it crashes. -- -- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring -- detached = vim.fn.has("win32") == 0, -- }, -- -- -- svoi no vstoroenii -- dap_configurations = { -- { -- type = "go", -- name = "AAAAA magic", -- request = "launch", -- program = os.getenv("HOME") .. "/Code-Stuff/Work/order/cmd/order/", -- envFile = os.getenv("HOME") .. "/Code-Stuff/Work/order/ci/dev/.env", -- }, -- }, -- }) --kakoi-to parser s vscode -- local vscode = require("dap.ext.vscode") -- local json = require("plenary.json") -- vscode.json_decode = function(str) -- return vim.json.decode(json.json_strip_comments(str)) -- end end, }