Servidor DAP — Debug Adapter Protocol
Archivo: src/bin/forja_dap.rs (750 líneas)
¿Por qué existe?
Implementa un servidor que habla el protocolo DAP (Debug Adapter Protocol) de Microsoft, permitiendo que editores como VS Code y Neovim usen el debugger integrado de Forja con interfaz gráfica. El DAP es el estándar de la industria para depuradores en IDEs.
¿Cómo funciona?
El binario forja_dap actúa como un adaptador entre el editor y el debugger de Forja:
- El editor inicia
forja_dapcomo un proceso hijo - La comunicación se hace mediante JSON sobre stdin/stdout (DAP)
forja_daptraduce los comandos DAP a llamadas alDebuggerdesrc/debugger.rs- El editor muestra la UI de debugging (breakpoints, variables, call stack, etc.)
Eventos DAP implementados
| Evento DAP | Descripción |
|---|---|
initialize | Negocia capacidades del debugger con el editor |
launch | Inicia el programa Forja a depurar |
setBreakpoints | Establece breakpoints desde el editor |
setExceptionBreakpoints | Configura breakpoints en excepciones |
configurationDone | Señal de que la configuración inicial ha terminado |
continue | Continúa la ejecución hasta el próximo breakpoint |
next | Step over: ejecuta la siguiente línea sin entrar a funciones |
stepIn | Step into: entra a la función llamada |
stepOut | Step out: sale de la función actual |
stackTrace | Obtiene la pila de llamadas actual |
scopes | Obtiene los ámbitos de variables del frame actual |
variables | Obtiene las variables de un ámbito específico |
disconnect | Desconecta y termina la sesión de debugging |
Configuración en VS Code
📄 .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "forja-dap",
"request": "launch",
"name": "Depurar Forja",
"program": "${workspaceFolder}/ejemplo.fa"
}
]
} 🔍 Uso: Ejecutá
forja debug ejemplo.fa para modo terminal, o configurá VS Code para usar forja_dap como adaptador DAP.