Fixed
- Cursor snapping over double-character formatting marks in Live Preview — moving through
**bold**,__underline__,~~strikethrough~~, or==highlight==withh/lskipped positions inside the**/__/~~/==delimiters instead of visiting each character. The cursor would jump from the first delimiter character to the content, skipping the second delimiter character. Investigation found that theEditorState.transactionFilterintroduced to correct cursor positioning near formatting marks was the sole cause of the snapping — Obsidian's Live Preview natively handles mark visibility based on cursor proximity, and all formatting marks are full-width DOM elements on the active line. The transaction filter, theformattingMarkModesetting, and theformattingmarkmodevim option have been removed. (#33)- Plugin: removed
src/vim/formatting-mark-fix.ts,src/vim/formatting-mark-ranges.ts; removedformattingMarkModefrom settings interface, defaults, settings UI, Style Settings definition, vimrc loader, and vim options
- Plugin: removed
gk/gjstill skips lines in documents with mixed headings and lists —gkcould jump over multiple document lines when navigating upward through a document containing headings of varying sizes (###,####) separated by empty lines. The previous fix (v0.18.0) only clamped multi-line jumps when a replaced widget decoration (dec.point) was present in the skipped range, so headings — which use mark decorations with larger fonts, not replaced widgets — still triggered overshooting from CM6's pixel-basedmoveVertically. The fork'sfindPosVnow clamps all multi-document-line jumps to ±1 when no fold is present, regardless of decoration type.posAtCoordsresolves horizontal position on the clamped target line; thegoalColumn > 0guard is relaxed togoalColumn != nullso the column fixup also fires at column 0. (#26)- Fork:
src/cm_adapter.ts(findPosVline-jump clamp,posAtCoordsresolution on clamped target)
- Fork:
Added
- 6 regression tests for cursor movement through double-character formatting marks (
**,__,~~,==) — asserts every position is visited in bothlandhdirections - E2E tests for
gkover h4/h5/h6 headings: cursor horizontal position preserved across all heading levels - E2E test for
gkthrough mixed headings, text, and lists: verifies no document lines are skipped and horizontal position is preserved on non-empty lines
Documentation
KNOWN_LIMITATIONS.md: updated "Visual line navigation and replaced widget decorations" section with clamp-all-jumps approach; updatedgj/gkwidgets behavioral deviation entry; updated test coverage count (3 → 7 heading tests)
Full Changelog: 0.42.0...0.43.0