Depurar en Neovim
Existen muchos plugins diferentes que se pueden usar para depurar código de Rust en Neovim. Esta guía te mostrará cómo configurar nvim-dap y algunos plugins adicionales para depurar aplicaciones de Tauri.
Requisitos previos
Sección titulada “Requisitos previos”La extensión nvim-dap requiere el binario codelldb. Descarga la versión para tu sistema desde https://github.com/vadimcn/codelldb/releases y descomprímela. Apuntaremos a ella más adelante en la configuración de nvim-dap.
Configurar nvim-dap
Sección titulada “Configurar nvim-dap”Instala los plugins nvim-dap y nvim-dap-ui. Sigue las instrucciones proporcionadas en sus páginas de GitHub o simplemente usa tu gestor de plugins favorito.
Ten en cuenta que nvim-dap-ui requiere el plugin nvim-nio.
A continuación, configura el plugin en tu configuración de Neovim:
local dap = require("dap")
dap.adapters.codelldb = { type = 'server', port = "${port}", executable = { -- Change this to your path! command = '/opt/codelldb/adapter/codelldb', args = {"--port", "${port}"}, }}
dap.configurations.rust= { { name = "Launch file", type = "codelldb", request = "launch", program = function() return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/target/debug/', 'file') end, cwd = '${workspaceFolder}', stopOnEntry = false },}Esta configuración te pedirá que apuntes al binario de la aplicación Tauri que deseas depurar cada vez que inicies el depurador.
Opcionalmente, puedes configurar el plugin nvim-dap-ui para alternar la vista del depurador automáticamente cada vez que una sesión de depuración comience y se detenga:
local dapui = require("dapui")dapui.setup()
dap.listeners.before.attach.dapui_config = function() dapui.open()enddap.listeners.before.launch.dapui_config = function() dapui.open()enddap.listeners.before.event_terminated.dapui_config = function() dapui.close()enddap.listeners.before.event_exited.dapui_config = function() dapui.close()endPor último, puedes cambiar la forma predeterminada en que se muestran los puntos de interrupción en el editor:
vim.fn.sign_define('DapBreakpoint',{ text ='🟥', texthl ='', linehl ='', numhl =''})vim.fn.sign_define('DapStopped',{ text ='▶️', texthl ='', linehl ='', numhl =''})Iniciar el servidor de desarrollo
Sección titulada “Iniciar el servidor de desarrollo”Dado que no estamos usando la CLI de Tauri para iniciar la aplicación, el servidor de desarrollo no se iniciará automáticamente. Para controlar el estado del servidor de desarrollo desde Neovim puedes usar el plugin overseer.
La mejor manera de controlar las tareas que se ejecutan en segundo plano es utilizar la configuración de tareas al estilo VS Code. Para hacer esto, crea un archivo .vscode/tasks.json en el directorio del proyecto.
Puedes encontrar un ejemplo de configuración de tareas para un proyecto que usa trunk a continuación.
{ "version": "2.0.0", "tasks": [ { "type": "process", "label": "dev server", "command": "trunk", "args": ["serve"], "isBackground": true, "presentation": { "revealProblems": "onProblem" }, "problemMatcher": { "pattern": { "regexp": "^error:.*", "file": 1, "line": 2 }, "background": { "activeOnStart": false, "beginsPattern": ".*Rebuilding.*", "endsPattern": ".*server listening at:.*" } } } ]}Atajos de teclado de ejemplo
Sección titulada “Atajos de teclado de ejemplo”A continuación puedes encontrar atajos de teclado de ejemplo para iniciar y controlar las sesiones de depuración.
vim.keymap.set('n', '<F5>', function() dap.continue() end)vim.keymap.set('n', '<F6>', function() dap.disconnect({ terminateDebuggee = true }) end)vim.keymap.set('n', '<F10>', function() dap.step_over() end)vim.keymap.set('n', '<F11>', function() dap.step_into() end)vim.keymap.set('n', '<F12>', function() dap.step_out() end)vim.keymap.set('n', '<Leader>b', function() dap.toggle_breakpoint() end)vim.keymap.set('n', '<Leader>o', function() overseer.toggle() end)vim.keymap.set('n', '<Leader>R', function() overseer.run_template() end)© 2026 Colaboradores de Tauri. CC-BY / MIT