Neovim: быстрый старт¶
Считаем, что плагин установлен и gui = true.
Запустить сессию¶
- Откройте файл проекта.
- Поставьте курсор на исполняемую строку и выполните
:ToggleBreakpoint(или нажмите<leader>db). - Выполните
:DebugStart.
Открывается окно отладчика, программа выполняется и останавливается на вашей
точке. В Neovim на строке остановки появляется ▶, сама строка подсвечивается.
Если точка останова явно не поставлена, фронтенд берёт текущую строку как начальную.
Конфига ещё нет? Всё равно работает¶
:DebugStart в проекте без .bugsaur/config.toml не падает. Отладчик ищет
маркер языка, создаёт конфиг, сообщает об этом и продолжает запуск. Файл
появляется в репозитории, и дальше он ваш.
Если кандидатов несколько — workspace с несколькими бинарниками, Go с
несколькими cmd/*, Python с несколькими точками входа, — выписываются все, а
default встаёт на тот, из файла которого вы запустили отладку.
Создать конфиг заранее, ничего не запуская:
Если язык не опознан, запуск завершается ошибкой с указанием каталога. Молча отлаживать не то отладчик не станет.
Выбрать профиль¶
Имена профилей дополняются по Tab и читаются из конфига проекта. Без
аргумента берётся default.
Отладить тест под курсором¶
по умолчанию <leader>dT. Курсор должен находиться внутри тестовой функции — в
Rust годится и строка #[test]. На другой строке команда отказывает и ничего не
запускает.
Если курсор стоит на строке тестовой группы — например mod tests, — та же
команда запускает всю группу.
Два условия, о которые спотыкаются
Буфер должен быть сохранён. Бэкенд читает файл с диска и не может надёжно сопоставить несохранённый текст с собранным бинарником.
Сохранённые точки останова не подхватываются. В отличие от
:DebugStart, запуск теста использует только точки текущего запроса.
Управлять выполнением¶
Стандартные mappings — <leader>dS (старт), <leader>dT (отладка теста под
курсором), <leader>dc, <leader>do, <leader>di, <leader>dO,
<leader>dp, <leader>dt, <leader>du, <leader>db. Полный список с
описаниями: Клавиши.
Условные точки останова¶
Выражение пишется на языке отлаживаемой программы, и остановка происходит, только когда оно истинно.
Закрытие Neovim не завершает сессию¶
Бэкенд продолжает работать. При повторном подключении приезжает актуальное состояние, так что редактор можно перезапустить посреди сессии, ничего не потеряв.
С auto_attach = true в setup() старт Neovim молча прицепляется к идущей
сессии проекта.