github saberzero1/motions 0.12.0

latest releases: 1.4.0, 1.3.1, 1.3.0...
3 months ago

Fixed

  • Visual line navigation skips block MathJax in live preview — gj/gk and j/k now navigate into rendered MathJax $$ blocks line by line instead of skipping over them. The fork's findPosV detects when moveVertically jumps 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 as i*/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 — . after cw correctly replays the inserted text (was a test infrastructure issue, not a vim engine bug)
  • Search n/N wrap-around — n after / 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 to vim-command-done in addition to vim-keypress and vim-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 vimrc set guicursor=n:block,i:bar,v:hollow,r:underline,o:underline. Requires bundled fork mode. (#13)
  • E2E test suite test/specs/widget-navigation.e2e.ts with 6 regression tests for gj/gk/j/k navigation through rendered MathJax $$ blocks in live preview

Changed

  • i$/a$ text objects now use createSmartDollarTextObject (tries $$ first, falls back to $), matching the same disambiguation pattern as i*/a* with createSmartAsteriskTextObject

Full Changelog: 0.11.0...0.12.0

Don't miss a new motions release

NewReleases is sending notifications on new releases.