aboutsummaryrefslogtreecommitdiffstats
path: root/lua/pi/dap/configs/cpp.lua
diff options
context:
space:
mode:
authorElvis Claros Castro <elvis@claros.ar>2026-09-27 12:46:49 -0300
committerElvis Claros Castro <elvis@claros.ar>2026-09-27 12:46:49 -0300
commitdf7c711e2a49d51249350f52c63274b72aacb739 (patch)
tree426da3b65371f857f3ee3d9893d7ff3279aac02e /lua/pi/dap/configs/cpp.lua
parenta0bd84df02ce235123dfc939327e8bd33dffdd7e (diff)
downloadnvim-conf-df7c711e2a49d51249350f52c63274b72aacb739.tar.gz
nvim-conf-df7c711e2a49d51249350f52c63274b72aacb739.zip
Migración de plugins a funcionalidad nativa: statusline y treesitter propios, se quitan mason, lualine, mini, notify y otros
Diffstat (limited to 'lua/pi/dap/configs/cpp.lua')
-rw-r--r--lua/pi/dap/configs/cpp.lua46
1 files changed, 32 insertions, 14 deletions
diff --git a/lua/pi/dap/configs/cpp.lua b/lua/pi/dap/configs/cpp.lua
index a2718b0..4f47345 100644
--- a/lua/pi/dap/configs/cpp.lua
+++ b/lua/pi/dap/configs/cpp.lua
@@ -1,24 +1,47 @@
local dap = require("dap")
+-- gdb DAP nativo (gdb >= 14). No usa runInTerminal, así que evita el bug
+-- de nvim-dap `terminals.acquire` en Neovim 0.13-dev. La salida del programa
+-- aparece en la consola/repl de dap-ui.
+dap.adapters.gdb = {
+ type = "executable",
+ command = "gdb",
+ args = { "--interpreter=dap", "--eval-command", "set print pretty on" },
+}
+
+-- Adaptador cpptools/OpenDebugAD7 (Microsoft) como fallback.
dap.adapters.cppdbg = {
id = 'cppdbg',
type = 'executable',
command = '/home/elvis/.local/share/nvim/mason/packages/cpptools/extension/debugAdapters/bin/OpenDebugAD7',
}
+local function pick_program()
+ return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
+end
+
+local function pick_args()
+ return vim.split(vim.fn.input('Program arguments: ', ''), " ")
+end
+
dap.configurations.cpp = {
{
- name = "Launch file",
+ name = "Launch (gdb)",
+ type = "gdb",
+ request = "launch",
+ program = pick_program,
+ cwd = "${workspaceFolder}",
+ args = pick_args,
+ stopAtBeginningOfMainSubprogram = true, -- equivalente a stopAtEntry en gdb DAP
+ },
+ {
+ name = "Launch (cppdbg / cpptools)",
type = "cppdbg",
request = "launch",
- program = function()
- return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
- end,
+ program = pick_program,
cwd = '${workspaceFolder}',
stopAtEntry = true,
- args = function()
- return vim.split(vim.fn.input('Program arguments: ', ''), " ")
- end,
+ args = pick_args,
},
{
name = 'Attach to gdbserver :1234',
@@ -28,14 +51,9 @@ dap.configurations.cpp = {
miDebuggerServerAddress = 'localhost:1234',
miDebuggerPath = '/usr/bin/gdb',
cwd = '${workspaceFolder}',
- program = function()
- return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
- end,
- args = function()
- return vim.split(vim.fn.input('Program arguments: ', ''), " ")
- end,
+ program = pick_program,
+ args = pick_args,
},
}
dap.configurations.c = dap.configurations.cpp
-