Skip to content

Documentation drift: start-screen “any key”, CLAUDE.md triggers, README trigger list & structure tree #11

@chiro-hiro

Description

@chiro-hiro

The following documentation statements contradict the actual code. Grouped into one issue since each is a small wording fix.

1. start-screen “any key” overstatement

plugin/startscreen.vim — line 57 (prompt text) and line 96 (comment) vs lines 97-110 (enumerated mappings)

The on-screen prompt reads 'Press any key to start...' and the in-code comment on line 96 says 'Any keypress closes the start screen', but dismissal is wired to a hard-coded enumeration: a-z, A-Z, 0-9, , , , , the four arrows, , and :, /, ?. Keys outside that set are not mapped and do nothing useful on this nomodifiable buffer (they bell or are silently ignored): common ones a user is likely to mash include '.', ',', ';', '-', '+', '*', '#', '%', '~', Enter on the numpad, /, /, -, and mouse clicks. So a user who presses, e.g., '.' or PageDown expecting 'any key' to dismiss gets no response, contradicting both the prompt and the comment. (Note: CLAUDE.md's wording is accurate — it lists the enumerated set; only the user-facing prompt string and the line-96 comment overpromise.)

Fix: Either soften the wording (prompt: 'Press Enter, Esc, or Space to start...'; comment: 'A common set of keys closes the start screen') OR broaden coverage so it truly behaves as 'any key' — e.g. map punctuation/function/page keys too, or simpler, route everything through a single fallback by also handling the unmapped case. The minimal honest fix is the wording change since the enumerated set already covers the keys CLAUDE.md documents.

2. CLAUDE.md lists phantom ::/-> triggers

CLAUDE.md — Autocomplete section, line 108

Line 108 describes trigger characters as "filetype-configured trigger characters (., ::, ->, etc.)". The engine matches a single character before the cursor against b:ivim_complete_triggers, and every ftplugin only registers single characters (c/cpp use ['.', '>'], css uses [':'], html uses ['<','/',' '], sh uses ['$'], etc.). No ftplugin uses the multi-char strings :: or ->; per the project's own design notes, :: was explicitly removed because the multi-char :: froze Rust/Lua/C++ completion. Listing ::/-> as configured triggers contradicts both the code and the recorded design decision.

Fix: Replace the illustrative list with the actually-used single characters, e.g. "(., >, :, <, /, $, space)", and drop the ::/-> examples.

3. README omits HTML space trigger

README.md — Autocomplete section, line 159

README line 159 lists the omnifunc trigger characters as "(., :, >, <, /, $)". after/ftplugin/html.vim registers space as a trigger (['<', '/', ' ']), so in HTML buffers a literal space fires htmlcomplete#CompleteTags. The space trigger is omitted from the documented set.

Fix: Add space to the documented trigger list, or note that HTML additionally triggers on space.

4. README structure tree omits plugin/context_menu.vim

README.md — Project Structure block, lines 195-200

The README "Project Structure" diagram lists five files under plugin/ (autocomplete.vim, keymaps.vim, settings.vim, startscreen.vim, statusline.vim) but omits plugin/context_menu.vim, which is a real file that implements the right-click Copy/Cut/Paste menu documented elsewhere in the same README (line 105) and in CLAUDE.md. A reader auditing the directory against the README would find an undocumented plugin file.

Fix: Add │ ├── context_menu.vim # Right-click Copy/Cut/Paste menu to the README plugin/ listing to match the actual file set and CLAUDE.md.


Filed from an automated multi-agent source review (2026-05-29); finding adversarially verified at high confidence. Line numbers reflect the audit-fixes-2026-05 working tree.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions