Fixed
- Visual line navigation skips block MathJax in live preview —
gj/gkandj/know navigate into rendered MathJax$$blocks line by line instead of skipping over them. The fork'sfindPosVdetects whenmoveVerticallyjumps over multiple document lines (indicating a replaced widget decoration) and steps one document line instead, allowing the cursor to enter the widget's source range. Folded ranges are excluded from correction. (#14) da$on block math$$...$$deletes partially —da$on$$ a + b = c $$now correctly deletes the entire expression (producing empty string) instead of leaving$$. The$text object now uses smart disambiguation (same pattern asi*/a*): tries$$as delimiter first, falls back to$for inline math.di$on block math correctly produces$$$$.)sentence motion at end of text —)at the end of the last sentence no longer moves the cursor backward to the period; it stays in place, matching Neovim- Dot-repeat of
cw+ typed text —.aftercwcorrectly replays the inserted text (was a test infrastructure issue, not a vim engine bug) - Search
n/Nwrap-around —nafter/search correctly wraps to the first match when reaching the end of the document (was a test infrastructure issue) - Chord display not clearing on Escape — pending keystrokes (e.g.
d) in the status bar now clear when Escape is pressed. The mode tracker now listens tovim-command-donein addition tovim-keypressandvim-mode-change, catching the case where Escape cancels a partial command without changing mode or firing a keypress event. (#2) - Cursor text invisible in light mode — the character under the block cursor now uses
--text-on-accent(Obsidian's contrast color) instead of the syntax-highlighted color. Previously, colored text (headings, links) under the cursor was the same hue as the cursor background, making it unreadable in light themes. (#12)
Added
- Per-mode cursor shapes — configurable cursor shape per Vim mode: block, bar, underline, or hollow. Defaults match Neovim (
guicursor): block for normal/visual, bar for insert, underline for replace/operator-pending. Configurable via Settings → Vim Motions → Cursor shapes or vimrcset guicursor=n:block,i:bar,v:hollow,r:underline,o:underline. Requires bundled fork mode. (#13) - E2E test suite
test/specs/widget-navigation.e2e.tswith 6 regression tests for gj/gk/j/k navigation through rendered MathJax$$blocks in live preview
Changed
i$/a$text objects now usecreateSmartDollarTextObject(tries$$first, falls back to$), matching the same disambiguation pattern asi*/a*withcreateSmartAsteriskTextObject
Full Changelog: 0.11.0...0.12.0