Configuration¶
What and how to debug is described by the project itself, in
<root>/.bugsaur/config.toml. The file is read by the debugger, not by the
editor: bugsaur from a terminal must see exactly the same configuration as
:DebugStart from Neovim.
The project root¶
The root is the nearest directory up the tree containing .bugsaur/config.toml.
The search starts from the file you launched debugging on. The nearest config
wins over an enclosing one, and there is no layering or merging.
If there is no config at all, the search continues upwards for a language marker
— go.mod, Cargo.toml, composer.json, pyproject.toml / setup.py /
requirements.txt — and a config is generated so the launch can continue. The
generated file is a starting point, not a guess: it appears in git status and
is meant to be edited.
Everything relative in the config resolves from the root. ${root} expands to
the absolute root path in env, args, adapter_command and
launch_arguments.
A minimal config¶
Unknown keys are errors¶
The schema is closed. A key Bugsaur does not know is a parse error that stops the launch — it is not silently ignored.
This is deliberate: a typo in a config that is quietly dropped produces a debug session that behaves subtly wrong for reasons nothing on screen explains. An error naming the line is cheaper.
What lives where¶
<root>/.bugsaur/
├── config.toml the project — shared, committed
├── breakpoints.json your breakpoints — personal, git-ignored
├── build/ binaries Bugsaur builds; ignores itself
└── logs/ logs saved from the Logs panel
This section¶
| Page | What it covers |
|---|---|
| Profiles | one profile per debuggable thing; choosing between them |
| Program arguments | args |
| Environment variables | env, env_file, the .env format |
| Working directory | cwd and why the default is the root |
| Path mappings | debugging code that runs elsewhere |
| UI | [ui]: theme, layout, window hotkeys |
| Reference | every key, its type and its default |