31a68655 — [web] add optional Vim keybindings and editor status
Depends on the configured-editor-theme PR linked below. This PR targets feat/configured-editor-theme so its diff contains only the Vim work: 11 files, 557 additions / 2 deletions.
Verification
Previously completed during feature verification (not rerun merely to open this PR):
Root pnpm lint, pnpm check, and pnpm test passed after the footer/minimum-height changes.
Focused tests cover browser preference handling, shortcut filtering, compartment toggling, history preservation, generated-document replacement, and footer state/listener cleanup.
The real plugin imported without a browser DOM; owner visually approved the integration/footer.
Tests mock the public Vim/DOM boundaries and do not establish exhaustive real-browser Vim semantics. Remaining manual attention: counted insertions/dot-repeat, switching off during Insert, IME/completion, Attach/block-selection behavior, and Save/navigation while inserting. Vimium can intercept Escape; the documented URL exclusions should be applied when checking application behavior. No forced-focus workaround was added.
No application/theme/content builds, Docker operations, browser-testing framework, or live CSS updates were performed for this handoff.
Landing
Merge the parent color/theme PR into main first, preferably fast-forward-only. Then retarget this PR to main and fast-forward it, preserving the reviewed commit. Do not land it into the temporary theme branch or delete that base before retargeting.
No merge is being performed by the agent. TypeBox planning and untracked demo content are excluded.
## Summary
Add optional Vim keybindings to both the Markdown source editor and text-asset editor using `@replit/codemirror-vim@6.4.0`.
- Standard keybindings remain the default; browser localStorage remembers the choice.
- Toggle with Ctrl+Alt+V only while the editor is focused. No clickable toggle, instance configuration, account preference, or global shortcut.
- Add a quiet footer: `Vim (Ctrl+Alt+V)` on the left and the actual mode on the right, or `Standard (Ctrl+Alt+V)` with no mode.
- Finish Vim input and return to Normal before applying generated content; preserve the source snapshot checks and single undoable replacement.
- Style Vim cursors/search/prompts with the configured editor palette and existing application tokens.
- Retain the existing application Save/navigation controls; no custom Save/quit Ex commands.
- Include application integration tests, documentation (including Vimium exclusions), and a changeset.
Fixes #98.
## Commit and dependency
`31a68655` — `[web] add optional Vim keybindings and editor status`
Depends on the configured-editor-theme PR linked below. This PR targets `feat/configured-editor-theme` so its diff contains only the Vim work: 11 files, 557 additions / 2 deletions.
## Verification
Previously completed during feature verification (not rerun merely to open this PR):
- Root `pnpm lint`, `pnpm check`, and `pnpm test` passed after the footer/minimum-height changes.
- Focused tests cover browser preference handling, shortcut filtering, compartment toggling, history preservation, generated-document replacement, and footer state/listener cleanup.
- The real plugin imported without a browser DOM; owner visually approved the integration/footer.
Tests mock the public Vim/DOM boundaries and do not establish exhaustive real-browser Vim semantics. Remaining manual attention: counted insertions/dot-repeat, switching off during Insert, IME/completion, Attach/block-selection behavior, and Save/navigation while inserting. Vimium can intercept Escape; the documented URL exclusions should be applied when checking application behavior. No forced-focus workaround was added.
No application/theme/content builds, Docker operations, browser-testing framework, or live CSS updates were performed for this handoff.
## Landing
Merge the parent color/theme PR into `main` first, preferably fast-forward-only. Then retarget this PR to `main` and fast-forward it, preserving the reviewed commit. Do not land it into the temporary theme branch or delete that base before retargeting.
No merge is being performed by the agent. TypeBox planning and untracked demo content are excluded.
Parent PR: #105 — https://git.eleith.com/eleith/luzzle/pulls/105
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Add optional Vim keybindings to both the Markdown source editor and text-asset editor using
@replit/codemirror-vim@6.4.0.Vim (Ctrl+Alt+V)on the left and the actual mode on the right, orStandard (Ctrl+Alt+V)with no mode.Fixes #98.
Commit and dependency
31a68655—[web] add optional Vim keybindings and editor statusDepends on the configured-editor-theme PR linked below. This PR targets
feat/configured-editor-themeso its diff contains only the Vim work: 11 files, 557 additions / 2 deletions.Verification
Previously completed during feature verification (not rerun merely to open this PR):
pnpm lint,pnpm check, andpnpm testpassed after the footer/minimum-height changes.Tests mock the public Vim/DOM boundaries and do not establish exhaustive real-browser Vim semantics. Remaining manual attention: counted insertions/dot-repeat, switching off during Insert, IME/completion, Attach/block-selection behavior, and Save/navigation while inserting. Vimium can intercept Escape; the documented URL exclusions should be applied when checking application behavior. No forced-focus workaround was added.
No application/theme/content builds, Docker operations, browser-testing framework, or live CSS updates were performed for this handoff.
Landing
Merge the parent color/theme PR into
mainfirst, preferably fast-forward-only. Then retarget this PR tomainand fast-forward it, preserving the reviewed commit. Do not land it into the temporary theme branch or delete that base before retargeting.No merge is being performed by the agent. TypeBox planning and untracked demo content are excluded.
Parent PR: #105 — #105