Fixed
- IME change detection limited to primary editor leaf — IME composition tracking and input method switching now work across all editor views (split panes, Page Preview popovers, Canvas card editors). Previously, composition events and mode-change detection were wired to a single element/adapter obtained from
getActiveViewOfType(MarkdownView), so non-primary editors never received IME handling. Fixed with two new CM6 ViewPlugins registered viaregisterEditorExtension():CompositionTrackertrackscompositionstart/compositionendper-EditorView, andImModeWatcherbindsadapter.on('vim-mode-change')per-EditorView to detect insert mode transitions. The autocmd-based IM switch registrations (InsertEnter/InsertLeave/CmdlineLeave) are replaced by the per-view mechanism; Lua autocmd callbacks continue to fire for the primary leaf via AutocmdManager (unchanged contract). (#83)- Plugin:
src/im/composition-tracker.ts(new),src/im/im-mode-watcher.ts(new),src/im/im-switcher.ts(refactored — removed single-element tracking, addedcleanupView()),src/main.ts(registered extensions, removed autocmd-based IM registrations)
- Plugin:
Tests
- 15 unit tests in
test/unit/composition-tracker.test.ts: per-view composing state, multi-tracker isolation, destroy cleanup,onAllCompositionsEndcallback lifecycle, unsubscribe - 14 unit tests in
test/unit/im-mode-watcher.test.ts: lazy adapter binding, mode change detection (insert/leave/replace), adapter re-binding, cleanup, multiple views with unique IDs - 4 e2e tests in
test/specs/ime-composition-multiview.e2e.ts: composition tracking on active/non-active editors, independent per-view tracking, insert mode detection on non-active editor
Documentation
CHANGELOG.mdKNOWN_LIMITATIONS.md: Updated input method switching section with multi-view fixREADME.md: Updated input method switching feature description with multi-view supportCONTRIBUTING.md: Addedcomposition-tracker.tsandim-mode-watcher.tsto codebase structureAGENTS.md: Updated Lua API description noting per-view IM switching
Full Changelog: 0.79.0...0.80.0