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

Neovim: установка

Lua-фронтенд лежит в lua/bugsaur/init.lua того самого репозитория, который вы уже склонировали. Отдельно скачивать нечего.

Подключить

{
  dir = "/absolute/path/to/bugsaur",
  name = "bugsaur",
  config = function()
    require("bugsaur").setup({
      binary = "/absolute/path/to/bugsaur/target/debug/bugsaur",
      gui = true,
    })
  end,
}
vim.opt.rtp:prepend("/absolute/path/to/bugsaur")

require("bugsaur").setup({
  binary = "/absolute/path/to/bugsaur/target/debug/bugsaur",
  gui = true,
})

После правки конфига перезапустите Neovim — или выполните :source $MYVIMRC и вызовите setup заново.

binary указывает на собранный отладчик, поэтому bugsaur не обязан быть установлен глобально в PATH.

gui = true против gui = false

Флаг определяет, кто открывает окно отладчика.

gui = true окно запускает сам Neovim. Рекомендуется — отдельный терминал не нужен.
gui = false отладчик вы запускаете сами, а Neovim подключается к нему как source frontend.

Опции окна

Четыре опции, все выключены по умолчанию, все описывают окно проекта, а не язык или сессию — поэтому им место здесь, а не в профиле:

require("bugsaur").setup({
  gui = true,
  gui_focus_on_stop = true,  -- окно само выходит вперёд на остановке
  auto_attach = true,        -- при старте Neovim прицепиться к открытому окну
  gui_theme = "light",       -- тема окна, если проект своей не назвал
  gui_width = 1200,           -- начальная ширина, если проект своей не назвал
  gui_height = 800,           -- начальная высота, если проект своей не назвал
  gui_layout = {             -- раскладка панелей, если проект своей не назвал
    left = 0.3,
    bottom_left = { "Call Stack" },
    bottom = {},
  },
})
Опция Умолчание Что делает Когда читается
gui_focus_on_stop false окно выходит вперёд на каждой остановке при запуске процесса GUI
auto_attach false молча вернуться к идущей сессии проекта при каждом вызове setup()
gui_theme nil тема окна, когда проект её не выбрал при запуске процесса GUI
gui_width nil начальная ширина окна, когда проект её не выбрал при запуске процесса GUI
gui_height nil начальная высота окна, когда проект её не выбрал при запуске процесса GUI
gui_layout nil раскладка панелей, когда проект её не выбрал при запуске процесса GUI

Именно из колонки «когда читается» растут почти все недоразумения

Пять из этих опций читаются при запуске процесса GUI. Правка их в init.lua и повторный :source ничего не сделают с уже открытым окном — новое значение подействует на следующее.

Проект выигрывает у редактора

gui_theme, gui_width, gui_height и gui_layout применяются, только если проект промолчал. Секция [ui] в .bugsaur/config.toml имеет приоритет, потому что она общая для всех, кто открывает этот проект. Подробности: Настройка → Интерфейс.

Подсветка исполнения

На остановке плагин открывает текущее место в исходнике, ставит знак исполнения и подсвечивает всю строку остановки группой BugsaurExecutionLine — по умолчанию это ссылка на CursorLine.

У знаков точек останова три состояния: pending , verified , rejected .

Подсветку строки можно выключить или направить на другую группу:

require("bugsaur").setup({
  execution_line = false,
  -- execution_line_hl = "DiagnosticInfo",
})

Проверить

Откройте проект, поставьте курсор на исполняемую строку и выполните:

:ToggleBreakpoint
:DebugStart

Если команда :DebugStart неизвестна, значит setup() не отработал — проверьте путь в dir или в rtp:prepend.

Дальше: Быстрый старт.