turboreview ships a tiny debuggable program at examples/debug_demo.rs for
trying the in-TUI debugger.
cargo build --example debug_demo
# → target/debug/examples/debug_demoAny Debug Adapter Protocol adapter works. On macOS, lldb-dap ships with Xcode:
xcrun -f lldb-dap
# /Applications/Xcode.app/Contents/Developer/usr/bin/lldb-dapLinux: install lldb-dap (LLVM) or codelldb.
turboreview reads <repo>/.turboreview/config.json (gitignored — local only).
Add a debug block. Example for this repo + the demo program:
{
"theme": "dark",
"debug": {
"adapter": {
"command": "/Applications/Xcode.app/Contents/Developer/usr/bin/lldb-dap",
"args": []
},
"build": "cargo build --example debug_demo",
"program": "target/debug/examples/debug_demo",
"args": [],
"cwd": ".",
"source_map": [],
"remote": { "host": "", "port": 0, "attach_commands": [] }
}
}Fields:
adapter.command/args— the DAP adapter to spawn (use a full path if it's not onPATH, as with Xcode'slldb-dap).build— shell command run before launch (skipped if empty).program— built binary, relative to the source root.args/cwd— debuggee arguments and working directory.source_map—[[from, to]]path remaps (for old-commit / remote debugging).remote— remote-attach target:host/portbuild an lldb-dapgdb-remote host:port, or setattach_commandsto raw adapter commands.
Run turboreview in this repo, open examples/debug_demo.rs in the diff, then:
bon a marked// BREAKPOINTline — a●appears in the gutter.Dopens the launch picker — choose worktree (or commit in the Commits view, process, remote); it builds (if configured) and starts.- The right pane's Debug tab shows
⏸ stopped, the call stack, and the top frame's locals;▶marks the stopped line.[/]switch the right tab,tswitches Vars / Breakpoints. Tabto focus the Debug pane, then step:ccontinue,nnext,istep-in,ostep-out.Enterexpands a frame or a structured variable.- Attach a snapshot: while stopped, press
cto comment, thenCtrl-Dto attach the current call stack + locals to the comment. Xends the session.
Beyond debug, .turboreview/config.json also holds:
See the README's Test coverage and Macro-expanded view sections for details.
{ // test coverage (% to toggle, M to run) "coverage_file": "coverage/lcov.info", "coverage_command": "cargo llvm-cov --lcov --output-path coverage/lcov.info", // macro-expanded view (e). Several entries -> a selection popup; {file} and // {module} are substituted (module derived from the src-relative path). "expand_commands": [ { "name": "lib", "command": "cargo expand --lib {module}" }, { "name": "example", "command": "cargo expand --example $(basename {file} .rs)" } ] }