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

Справочник по командам Neovim

Команды и стандартные mappings

Команда Стандартный mapping Описание
:DebugStart [профиль] <leader>dS запустить сессию; имена профилей дополняются по Tab, привязка всегда берёт профиль по умолчанию
:DebugTest <leader>dT отладить тест под курсором
:DebugContinue <leader>dc выполнять до следующей точки останова
:DebugStepInto <leader>di войти в вызов на этой строке
:DebugStepOver <leader>do выполнить строку, остановиться на следующей
:DebugStepOut <leader>dO доработать до возврата из функции
:DebugPause <leader>dp прервать работающую программу
:DebugStop <leader>dt завершить сессию
:DebugFocus <leader>du вывести окно отладчика вперёд
:ToggleBreakpoint [условие] <leader>db поставить или снять точку останова на этой строке

Следите за регистром: <leader>do — шаг с обходом, <leader>dO — шаг наружу; <leader>dt — стоп, <leader>dT — отладка теста, <leader>dS — старт.

Опции setup()

require("bugsaur").setup({  })
Опция Тип Умолчание Когда читается
binary строка при setup()
gui boolean при setup()
gui_focus_on_stop boolean false при запуске процесса GUI
auto_attach boolean false при каждом setup()
gui_theme строка nil при запуске процесса GUI
gui_width целое nil при запуске процесса GUI
gui_height целое nil при запуске процесса GUI
gui_layout таблица nil при запуске процесса GUI
gui_keymaps таблица nil при запуске процесса GUI
execution_line boolean true при setup()
execution_line_hl строка CursorLine при setup()

gui_theme, gui_width, gui_height и gui_layout применяются, только если секция [ui] проекта на эту тему промолчала.

gui_keymaps принимает continue, step_into, step_over, step_out, pause, terminate, restart; значение vim.NIL отключает привязку.

Lua API

local bugsaur = require("bugsaur")

bugsaur.list(opts)              -- записи; opts.root или opts.path сужают выборку
bugsaur.set(path, line, cond)   -- поставить или заменить условие; true, если набор изменился
bugsaur.remove(path, line)      -- снять одну; true, если было что снимать
bugsaur.remove_file(path)       -- снять все в файле; сколько снято
bugsaur.clear(opts)             -- снять всё или всё в opts.root

Запись из list(), сортировка по пути, затем по строке:

{
  path = "/abs/src/main.rs",
  relative = "src/main.rs",   -- nil, если вне любого корня
  root = "/abs",              -- nil там же
  line = 42,
  condition = nil,
  state = "verified",         -- "verified" | "rejected" | "pending"
}

Автокоманда

vim.api.nvim_create_autocmd("User", {
  pattern = "BugsaurBreakpointsChanged",
  callback = function(event)
    -- event.data.paths — затронутые файлы
  end,
})

Срабатывает на любое изменение набора точек: из этих функций, из :ToggleBreakpoint и при чтении набора файла с диска.

Знаки и группы подсветки

Знак Что означает
запускаемый тест или тестовая группа; на подсвеченной строке — текущая позиция исполнения
точка останова подтверждена
точка останова ожидает ответа
точка останова отклонена
Группа Умолчание
BugsaurExecutionLine ссылка на CursorLine

Пути

Путь Что это
/tmp/rust-debugger-nvim-<pid>.sock сокет source frontend
<корень>/.bugsaur/breakpoints.json сохранённый набор точек останова

Не контракт

bugsaur.state — внутреннее состояние плагина. Полагаться на него нельзя: поля вправе измениться.