My neovim config
1local vim = vim
2
3vim.pack.add({
4 { src = "https://github.com/mfussenegger/nvim-dap" },
5 { src = "https://github.com/rcarriga/nvim-dap-ui" },
6 { src = "https://github.com/nvim-neotest/nvim-nio" },
7 { src = "https://github.com/jay-babu/mason-nvim-dap.nvim" },
8 { src = "https://github.com/leoluz/nvim-dap-go" },
9})
10
11local setup_dap_keymaps = function()
12 vim.keymap.set("n", "<F5>", function()
13 require("dap").continue()
14 end, { desc = "Debug: Start/Continue" })
15 vim.keymap.set("n", "<F1>", function()
16 require("dap").step_into()
17 end, { desc = "Debug: Step Into" })
18 vim.keymap.set("n", "<F2>", function()
19 require("dap").step_over()
20 end, { desc = "Debug: Step Over" })
21 vim.keymap.set("n", "<F3>", function()
22 require("dap").step_out()
23 end, { desc = "Debug: Step Out" })
24 vim.keymap.set("n", "<leader>b", function()
25 require("dap").toggle_breakpoint()
26 end, { desc = "Debug: Toggle Breakpoint" })
27 vim.keymap.set("n", "<leader>B", function()
28 require("dap").set_breakpoint(vim.fn.input("Breakpoint condition: "))
29 end, { desc = "Debug: Set Breakpoint" })
30 vim.keymap.set("n", "<F7>", function()
31 require("dapui").toggle()
32 end, { desc = "Debug: See last session result" })
33end
34
35local setup_dap = function()
36 local dap = require("dap")
37 local dapui = require("dapui")
38
39 require("mason-nvim-dap").setup({
40 automatic_installation = true,
41 ensure_installed = { "delve" },
42 handlers = {},
43 })
44
45 dapui.setup({
46 icons = { expanded = "▾", collapsed = "▸", current_frame = "*" },
47 controls = {
48 icons = {
49 pause = "⏸",
50 play = "▶",
51 step_into = "⏎",
52 step_over = "⏭",
53 step_out = "⏮",
54 step_back = "b",
55 run_last = "▶▶",
56 terminate = "⏹",
57 disconnect = "⏏",
58 },
59 },
60 })
61
62 dap.listeners.after.event_initialized["dapui_config"] = dapui.open
63 dap.listeners.before.event_terminated["dapui_config"] = dapui.close
64 dap.listeners.before.event_exited["dapui_config"] = dapui.close
65
66 require("dap-go").setup({
67 delve = {
68 detached = vim.fn.has("win32") == 0,
69 },
70 })
71end
72
73setup_dap_keymaps()
74setup_dap()