Fixed
- Table cell cursor bounce-back on macOS —
scheduleCrossing()in the cross-cell motion overrides usedsetTimeout(0)to defer cell focus changes after vim's motion return. On macOS Electron,setTimeout(0)is subject to timer clamping (1–4ms minimum delay), during which Obsidian's native table widget event handlers re-assert focus on the original cell — producing cursor bounce-back. Users withj→gj/k→gkremappings were especially affected because the remapping adds an extra key processing step. Fixed by replacingsetTimeout(0)withMessageChannelport messaging, which dispatches a macrotask that fires before timers in the browser event loop. Token-based deduplication ensures rapid key repeats coalesce correctly. (#136)- Plugin:
src/vim/table-cell-motions.ts(scheduleCrossingnow usesMessageChannelinstead ofsetTimeout(0))
- Plugin:
- Cross-cell motions broken when
enableTableNav=false— the 0.118.0 fix for #136 incorrectly gatedapplyTableCellMotions()onenableTableNav, which removed the motion overrides entirely when table nav was disabled. This brokej/k/h/lcross-cell navigation in native table cell editors. Reverted the gate — cross-cell motions are independent ofenableTableNav, as originally designed. (#136)- Plugin:
src/main.ts(removedenableTableNavcheck from bothapplyTableCellMotionsregistration sites)
- Plugin:
Tests
- Added native-mode cross-cell tests in
test/specs/table-nav-disabled.e2e.ts(#136): j cross row, k cross row, l cross cell, j exit table, no-overlay assertion, cell editor opens — using WebDriver$().click()for reliable cell entry andwaitUntilfor async assertions - Added raw-mode tests with
j→gj/k→gkremappings (j down, k up) - Updated
test/specs/table-cell-vim-mode.e2e.ts: cross-cell j/l tests usewaitUntilfor deterministic assertions - Updated
test/specs/table-cursor-suppression.e2e.ts: #127 tests useG/ggjumps instead of j/k table traversal; #135 tests use WebDriver cell click +waitUntilfor table-nav entry
Documentation
CHANGELOG.mdKNOWN_LIMITATIONS.md: reverted cross-cell motions documentation to reflect independence fromenableTableNavCONTRIBUTING.md: updatedtable-cell-motions.tsdescriptiondocs/features/tables.md: reverted table modes matrix and cell editor behavior descriptiondocs/configuration/settings.md: reverted Table navigation setting description
Full Changelog: 0.118.0...0.119.0