Справочник по конфигурации¶
Все ключи .bugsaur/config.toml. Список закрытый: незнакомый ключ — ошибка
разбора, останавливающая запуск.
Верхний уровень¶
| Ключ | Тип | Обязательный | Умолчание | Описание |
|---|---|---|---|---|
version |
целое | да | — | версия формата конфига. Сейчас 1 |
default |
строка | нет | — | профиль, который берётся, когда имя не названо. Обязателен, как только профилей больше одного |
ui |
таблица | нет | — | настройки окна, см. [ui] |
profiles |
таблица | нет | {} |
профили по именам, см. [profiles.<имя>] |
[profiles.<имя>]¶
| Ключ | Тип | Обязательный | Умолчание | Описание |
|---|---|---|---|---|
adapter |
строка | да | — | id адаптера из каталога: dlv, codelldb, debugpy, php |
program |
строка | да | — | что отлаживаем. Относительный путь считается от корня проекта |
adapter_command |
строка | нет | из каталога | перебивает команду адаптера, когда он лежит в vendor/ или node_modules/, а не в PATH |
cwd |
строка | нет | корень проекта | рабочий каталог отлаживаемого процесса |
args |
массив строк | нет | [] |
аргументы командной строки отлаживаемого процесса |
env_file |
строка | нет | — | файл с переменными окружения. Названный, но отсутствующий — ошибка запуска |
env |
таблица строк | нет | {} |
переменные окружения; перебивают env_file и унаследованное окружение |
launch_timeout |
целое | нет | 120 |
секунд ожидания ответов на launch / attach и configurationDone |
mode |
строка | нет | launch |
launch или attach |
build |
таблица | нет | из каталога | чем собрать перед запуском, см. build |
launch_arguments |
таблица | нет | {} |
тело DAP-запроса, уходит адаптеру как есть |
[profiles.api]
adapter = "dlv"
program = "cmd/api"
cwd = "."
args = ["--verbose"]
env_file = ".env"
env = { LOG_LEVEL = "debug" }
launch_timeout = 300
mode = "launch"
${root} разворачивается в абсолютный путь корня проекта в env, args,
adapter_command и launch_arguments.
[profiles.<имя>.build]¶
| Ключ | Тип | Обязательный | Умолчание | Описание |
|---|---|---|---|---|
command |
строка | да | — | что запускать |
args |
массив строк | нет | [] |
его аргументы |
Подстановки в args: {out} — путь собираемого бинарника, {program} — то, что
названо в program.
[profiles.worker.build]
command = "go"
args = ["build", "-tags=dev", "-gcflags=all=-N -l", "-o", "{out}", "./cmd/worker"]
[profiles.<имя>.launch_arguments]¶
Произвольная таблица, уходящая адаптеру телом DAP-запроса — поверх умолчаний каталога и поверх всего, что сгенерировал Bugsaur. Ключ заменяется целиком, а не сливается. Содержимое Bugsaur не интерпретирует: смысл принадлежит адаптеру.
Ключи, которые читает PHP-адаптер: port, pathMappings, sessionMode — плюс
testCommand для отладки теста под курсором.
[profiles.docker.launch_arguments]
sessionMode = "server"
port = 9003
pathMappings = { "/app" = "${root}" }
[ui]¶
| Ключ | Тип | Обязательный | Умолчание | Описание |
|---|---|---|---|---|
theme |
строка | нет | dark |
dark, light или system |
width |
целое | нет | 800 |
начальная ширина окна в логических пикселях |
height |
целое | нет | 600 |
начальная высота окна в логических пикселях |
layout |
таблица | нет | — | раскладка панелей, см. [ui.layout] |
keymaps |
таблица | нет | — | хоткеи окна, см. [ui.keymaps] |
Отсутствующий ключ — не то же самое, что заданный явно: молчание отдаёт решение редактору, явное значение выигрывает у редактора. См. Интерфейс.
[ui.layout]¶
| Ключ | Тип | Обязательный | Умолчание | Описание |
|---|---|---|---|---|
left |
дробное 0–1 | нет | 0.25 |
доля ширины окна под левую колонку |
left_split |
дробное 0–1 | нет | 0.35 |
доля высоты колонки под top_left |
main_split |
дробное 0–1 | нет | 0.35 |
доля высоты правой области под main |
top_left |
массив строк | нет | ["Threads"] |
панели верхней левой зоны |
bottom_left |
массив строк | нет | [] |
панели нижней левой зоны |
main |
массив строк | нет | все остальные | панели основной зоны |
bottom |
массив строк | нет | ["Call Stack"] |
панели под основной зоной |
Допустимые имена панелей: Threads, Call Stack, Variables, Watches,
Evaluate, Logs, Inspector, Breakpoints.
Ошибки запуска: неизвестное имя панели, панель, названная в двух зонах, доля вне 0–1, раскладка без единой панели.
[ui.keymaps]¶
Таблица действие → аккорд. Пустая строка снимает привязку.
| Группа | Действия |
|---|---|
| Выполнение | continue, step_into, step_over, step_out, pause, terminate, restart |
| Панели | next_panel, previous_panel, focus_threads, focus_call_stack, focus_variables, focus_watches, focus_evaluate, focus_logs, focus_inspector, focus_breakpoints |
| Навигация | next_row, previous_row, top, bottom, collapse, expand, activate, delete_row, cancel |
| Поиск по Variables | search, search_next, search_previous, search_continue |
| Прочее | help |
Аккорд — модификаторы Cmd, Ctrl, Alt, Shift через + и имя клавиши
(F1…F20, буква, Enter, Space, ArrowDown, …). Порядок модификаторов не
важен. Неизвестное действие, клавиша или модификатор останавливают запуск.
Файлы рядом с конфигом¶
| Путь | Что это |
|---|---|
.bugsaur/config.toml |
этот файл — принадлежит проекту, коммитится |
.bugsaur/breakpoints.json |
ваши точки останова — личные, скрыты от гита |
.bugsaur/build/ |
бинарники, которые собирает Bugsaur; игнорирует себя сам |
.bugsaur/logs/ |
логи, сохранённые из панели Logs |
.bugsaur-keys.json |
личные хоткеи проекта, аккорд → действие |
Полный пример¶
version = 1
default = "api"
[ui]
theme = "system"
[ui.layout]
left = 0.3
bottom_left = ["Call Stack"]
bottom = []
[ui.keymaps]
continue = "Alt+R"
pause = ""
[profiles.api]
adapter = "dlv"
program = "cmd/api"
args = ["--config", "${root}/configs/dev.yaml"]
env_file = ".env"
env = { LOG_LEVEL = "debug" }
launch_timeout = 300
[profiles.api.build]
command = "go"
args = ["build", "-gcflags=all=-N -l", "-o", "{out}", "./cmd/api"]
[profiles.worker]
adapter = "dlv"
program = "cmd/worker"