Full snapshot of the current Neovim session. Read-only — does not
modify any editor state.
Use `get_state_brief` for quick orientation at the start of a turn.
Use this when you need the complete picture: all window details,
folds, marks, diagnostics summaries, highlights, virtual text, and
indent settings.
Returns: mode (normal/insert/visual/etc.), cwd, buffers (relative
paths of all listed buffers), modified_buffers, current_tab, tab_count,
and terminals — a list of open terminal buffers as {buf, name,
visible}, present only when at least one exists (targets for
`send_to_terminal`).
windows — list of visible windows (current tab only). The active
window is always first, the alternate window (previous) is second.
Each window entry contains:
file (path relative to cwd), filetype, total_lines, modified,
buftype ("file" for normal buffers, "terminal", etc.),
line, col, indent: {expandtab, shiftwidth, tabstop}.
Optional per-window fields (present when applicable):
- role: "active" or "alternate".
- context: numbered lines surrounding the cursor.
- selection: {start_line, start_col, end_line, end_col} in visual modes.
- folds: list of [start, end] closed fold ranges.
- diagnostics_summary: {error, warning, info, hint} counts.
- marks: list of {mark, line, col} for lowercase (a-z) buffer marks.
- mcp_highlights: list of {start_line, end_line, color} for active highlights.
- mcp_virtual_text: list of {line, position, lines, color} for active virtual text.