Configuration

The server accepts configuration through CLI flags and editor initializationOptions. When both are provided, initializationOptions takes precedence.

CLI flags

FlagDefaultDescription
-v, --verbosewarnLog verbosity. Repeat for more: -v info, -vv debug, -vvv trace
--log-file PATHstderrWrite logs to a file instead of stderr
--line-width N78Target line width for formatting
--no-formattingoffDisable formatting
--reflow MODEalwaysProse reflow mode: always, only-if-too-long, never
--normalize-spacingoffCollapse multiple spaces to single space
--no-diagnosticsoffDisable diagnostics
--no-hoveroffDisable hover
--tag-path PATHPath to a Vim tags file or directory containing one. Repeatable
--no-runtime-tagsoffSkip loading $VIMRUNTIME/doc/tags

initializationOptions

Passed via your editor’s LSP configuration (e.g. init_options in Neovim).

KeyTypeDefaultDescription
lineWidthnumber78Target line width
formattingbooleantrueEnable formatting
reflowstring"always""always", "only-if-too-long", or "never"
normalizeSpacingbooleanfalseCollapse multiple spaces
diagnosticsbooleantrueEnable diagnostics
hoverbooleantrueEnable hover
tagPathsstring[][]Additional tag file paths
runtimeTagsbooleantrueLoad $VIMRUNTIME/doc/tags

Precedence

CLI flags set the defaults. initializationOptions override them per-field. If neither specifies a value, the server default applies.

tagPaths from both sources are merged — CLI --tag-path values and initializationOptions.tagPaths are combined, not replaced.

Tag resolution

The server resolves |taglinks| in this order:

  1. Same-file *tag* definitions
  2. Workspace files (doc/**/*.txt scanned at startup)
  3. External tags files (from --tag-path and tagPaths)
  4. $VIMRUNTIME/doc/tags (unless --no-runtime-tags)

External tags files use the Vim tags format — the same file generated by :helptags. When a tag is resolved through an external file, the corresponding .txt file is read on demand and cached.