Перейти к содержанию

Справочник по конфигурации

Все ключи .bugsaur/config.toml. Список закрытый: незнакомый ключ — ошибка разбора, останавливающая запуск.

Верхний уровень

Ключ Тип Обязательный Умолчание Описание
version целое да версия формата конфига. Сейчас 1
default строка нет профиль, который берётся, когда имя не названо. Обязателен, как только профилей больше одного
ui таблица нет настройки окна, см. [ui]
profiles таблица нет {} профили по именам, см. [profiles.<имя>]
version = 1
default = "app"

[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 через + и имя клавиши (F1F20, буква, 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"