local function config() local dapui = require("dapui") local dap = require("dap") dap.set_log_level("DEBUG") dapui.setup({ icons = { expanded = "", collapsed = "", current_frame = "" }, mappings = { -- Use a table to apply multiple mappings expand = { "", "<2-LeftMouse>" }, open = "o", remove = "d", edit = "e", repl = "r", toggle = "t", }, element_mappings = {}, expand_lines = vim.fn.has("nvim-0.7") == 1, layouts = { { elements = { -- Elements can be strings or table with id and size keys. { id = "scopes", size = 0.25 }, "breakpoints", "stacks", "watches", }, size = 40, -- 40 columns position = "left", }, { elements = { "repl", "console", }, size = 0.25, -- 25% of total lines position = "bottom", }, }, controls = { -- Requires Neovim nightly (or 0.8 when released) enabled = true, -- Display controls in this element element = "repl", icons = { pause = "", play = "", step_into = "", step_over = "", step_out = "", step_back = "", run_last = "", terminate = "", }, }, floating = { max_height = nil, -- These can be integers or a float between 0 and 1. max_width = nil, -- Floats will be treated as percentage of your screen. border = "single", -- Border style. Can be "single", "double" or "rounded" mappings = { close = { "q", "" }, }, }, windows = { indent = 1 }, render = { max_type_length = nil, -- Can be integer or nil. max_value_lines = 100, -- Can be integer or nil. }, }) -- Go require("dap-go").setup({ dap_configurations = { { type = "go", name = "Attach remote", mode = "remote", request = "attach", remotePath = "/app", }, }, delve = { port = 2346, }, }) -- dap.adapters.delve = { -- type = "server", -- host = "127.0.0.1", -- port = 2346, -- executable = { -- command = vim.fn.exepath("dlv"), -- args = { "dap", "-l", "127.0.0.1:2346" }, -- }, -- } -- dap.configurations.go = { -- { -- type = "delve", -- name = "Debug", -- mode = "remote", -- request = "attach", -- showLog = true, -- dlvToolPath = vim.fn.exepath("dlv"), -- Adjust to where delve is installed -- }, -- } require("dap.ext.vscode").load_launchjs() local opts = require("keymaps").opts vim.keymap.set("n", "du", dapui.toggle, opts) -- vim.keymap.set("n", "dc", "lua require('dap').continue()", opts) vim.keymap.set("n", "dc", dap.continue, opts) -- vim.keymap.set("n", "dl", "lua require('dap').launch()", opts) vim.keymap.set("n", "db", dap.toggle_breakpoint, opts) vim.keymap.set("n", "dd", dap.clear_breakpoints, opts) end local spec = { { "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap", "leoluz/nvim-dap-go" }, config = config, event = "BufEnter" }, } return spec