Fixed
- Scroll jumps to cursor when interacting with Meta Bind or other plugin fields in the properties panel — the
propertiesFoldObserverinfold-sync.tswatched.metadata-containerfor anyclassattribute mutation and unconditionally dispatchedEditorView.scrollIntoView(selection.main.head). Plugins like Meta Bind that render interactive inputs in the properties area trigger class mutations that are not fold toggles, causing the editor to scroll back to the last vim cursor position. Fixed by addingattributeOldValue: trueto theMutationObserverconfig and comparing the old vs newis-collapsedclass presence — the observer now only firesscrollCursorIntoView()when the fold state actually changes. No-op mutations (identical class string) and non-fold mutations (any class other thanis-collapsed) are ignored. (#89)- Plugin:
src/vim/fold-sync.ts(propertiesFoldObserver—is-collapsedfilter,attributeOldValue: true)
- Plugin:
Tests
- 4 e2e tests in
test/specs/properties-fold-scroll.e2e.ts: non-fold class mutation preserves scroll position, no-op class re-assignment preserves scroll position, fold toggle triggers scroll, unfold toggle triggers scroll - Spike test
test/specs/spikes/spike-metabind-scroll-issue89.e2e.ts: 8 diagnostic tests confirming root cause (class mutation scroll jump, observer attribution, split-view behavior, class mutation audit)
Documentation
CHANGELOG.mdKNOWN_LIMITATIONS.md: Added properties fold observer scroll fixCONTRIBUTING.md: Updatedfold-sync.tsdescription withis-collapsedfilterdocs/features/workspace-navigation.md: Updated fold scroll behavior note
Full Changelog: 0.84.0...0.85.0