Skip to content

Neovim

Bugsaur integrates with Neovim, but the relationship is not the usual one.

Bugsaur runs standalone. Neovim is an integration, not the owner.

The debugger is the only DAP client and the authoritative owner of session state. Neovim edits code, navigates sources and manages breakpoint UX. Close Neovim and the session keeps running; reconnect and it picks up the current state.

That is why the plugin's setup() carries only editor and window options. Adapters, programs and launch arguments live in the project's .bugsaur/config.toml, so one setup() serves any number of projects in any language — Rust, Go and PHP differ in their own config files, not in branching inside your editor configuration.

What the integration adds

Starting sessions :DebugStart, :DebugTest from where the cursor is
Breakpoint UX :ToggleBreakpoint, signs in the gutter, conditions
Source navigation on each stop the file opens at the stop location
Execution marker and a highlighted line where execution stands
Execution control :DebugContinue, the stepping commands, :DebugStop
Window control :DebugFocus, and options for how the window behaves

This section

  1. Installation — wire the plugin into your config.
  2. Quick Start — first session from the editor.
  3. Commands — every command, with what it does.
  4. Keymaps — the default mappings, and the window's own hotkeys.
  5. Breakpoint synchronization — how the set is shared.
  6. How the integration works — sockets, protocol, lifecycle.