Skip to content

Releases: ZorroStardust/zotero-vim-plus

v1.9.0 — colored-tag shortcuts and edit-mode tab guard

Choose a tag to compare

@ZorroStardust ZorroStardust released this 17 Sep 10:29

What's new in v1.9.0

New: Zotero colored-tag shortcuts (issue #3)

main:t1 … main:t9 toggle Zotero's colored tag at position N for the
currently selected items in the items pane, mirroring Zotero's native
Digit1…Digit9 behavior. main:t0 clears every colored tag from
the selection. Implemented via Zotero.Tags.getColorByPosition and
Zotero.Tags.removeColoredTagsFromItems, wrapped in
Zotero.DB.executeTransaction + UndoHistory.stageAction, so the
toggle is indistinguishable from the native action.

Shortcut Behavior
t1 … t9 Toggle Zotero colored tag 1–9
t0 Remove all colored tags from selection

Only fires in the items pane. Mixed-library selections are rejected
(colored tags are library-scoped).

Fixed: Shift+J/K tab switching while editing a note (issue #5)

Shift+J and Shift+K no longer switch tabs when the user is editing
text in a note editor (side panel, annotation popup, or this plugin's
own comment overlay). The guard now checks DOM focus inside all three
editor surfaces, including the PDF.js iframe where the plugin's overlay
textarea lives.

Internal

  • New regression: tools/check-count-digit-guard.js (7 cases for #3).
  • New regression: tools/check-insert-mode-shifts.js (11 cases for #5).
  • Listener-cleanup regression test from PR #4 is also part of this release.

Full changelog since v1.8.2:

  • 9078a4e chore(release): bump to v1.9.0
  • 0fd2041 feat(main): add t1..t9 colored-tag shortcuts, t0 clears (#3)
  • 26e18cb fix(main): don't switch tabs on Shift+J/K while editing a note (#5)

Compatible with Zotero 7.0 ~ 10.*.

v1.8.2 — Zotero 10 support

Choose a tag to compare

@ZorroStardust ZorroStardust released this 20 Aug 02:30

Support Zotero 10 (bump strict_max_version to 10.*).

v1.8.1

Choose a tag to compare

@ZorroStardust ZorroStardust released this 15 Aug 06:17

Fixes

  • Bind Enter (normal:enter) to editAnnotation while keeping normal:return compatibility.
  • Await annotation-comment autosave saveTx() so async failures are observable.
  • Prevent stale insert sessions from reopening the comment overlay after Escape.
  • Remove TEMP diagnostic key/focus/pointer trace logging from production builds.
  • Avoid false "PDF loading…" status on EPUB/snapshot views.
  • Keep existing mouse selections working with visual-mode motions and o.
  • Add Cursor mode rows to the Preferences keybinding editor and fix their ordering/colours.
  • Add missing focusReaderSidebar action label for EN/zh-CN.
  • Fix reader listener partial-registration leak and missing resize listener cleanup.
  • Remove duplicate switch cases and clean up note-editor listener deduplication.
  • Expand build checks (bootstrap.js, i18n.js) and tools/check-sync.js validation.
  • Update marks-persistence documentation to match the parent-item Extra-field backend.

Known functional issues in PENDING_ISSUES.md (ZV-001, ZV-002, ZV-004) are intentionally not included in this release.

v1.8.0

Choose a tag to compare

@ZorroStardust ZorroStardust released this 13 Aug 14:43

New features

  • Two-stage hint targeting (Visual + Cursor mode): uppercase multi-letter hint badges at sentence starts; picking one opens word-level hints inside that sentence (the sentence start keeps its label, so pressing it twice jumps straight there). Vimium-style filtering: typed prefix dims, non-matching badges hide, Backspace steps back, Escape goes fine -> coarse -> normal. Badges stay glued to the text while scrolling/zooming.
  • Multi-column PDF support: columns are auto-detected; j/k move within the column and wrap at column ends, 0/$ stay in the column, h/l/w/b and sentence/paragraph motions follow the reading flow across column breaks, and hints no longer leak into neighbouring columns.

Fixes

  • Hint badge positions no longer drift or cascade away from their words.
  • Fine-stage word hints stay strictly inside the selected sentence.

v1.7.1 - Native comment editors + re-patch loop fix

Choose a tag to compare

@ZorroStardust ZorroStardust released this 13 Aug 11:01

Changes since v1.7.0

  • Zotero's own annotation popup and sidebar comment fields are fully usable again: clicking into either while the plugin overlay is open saves and closes the overlay and hands over to the native editor; while any native editor has focus the plugin is completely inert (no key consumption, no focus moves); Escape inside native editors keeps its Zotero behavior.
  • Fixed an endless re-patch loop (457k log lines) and an unboundedly nested wrapper chain: the view patches are now applied once per view; log growth is back to normal (rescan logging throttled to once per 5 s).
  • Insert overlay: Enter newline, Esc save, 2 s autosave, popup guard as backstop — verified via zv-startup.log traces.

v1.7.0 - Insert mode annotation comment overlay

Choose a tag to compare

@ZorroStardust ZorroStardust released this 12 Aug 19:01

What's new

  • Press \i\ on a selected annotation to edit its comment in the plugin's own floating input box over the PDF (native typing + IME, Enter for new lines).
  • Existing comment is pre-filled; Esc saves, re-entering shows the saved text.
  • Fixed: Zotero 9 opened its annotation popup on Enter (and ate the newline) - Enter now inserts a newline only, via a _textAnnotationFocused\ patch.
  • Fixed: comments were never loaded or saved (\Zotero.Items.get()\ accepts numeric IDs only).
  • 2s autosave safety net, stray-popup guard, re-patch on view recreation.

v1.6.3

Choose a tag to compare

@ZorroStardust ZorroStardust released this 12 Aug 14:40

v1.6.3

Scroll overhaul

  • Three mutually exclusive scrolling modes (step / constant-speed / accelerating), default constant-speed
  • Scroll mode and parameters save automatically; only the active mode's parameters are shown

Fixes

  • Scroll behavior is now per-call: page turns (h/l, gg/G) are always instant; half/full-page and zt/zz/zb keep their smooth motion; ctrl+d/u smoothness no longer leaks into page turns
  • Cross-compartment scroll options passed via cloneInto (Xray-safe)

Preferences panel reliability

  • Mode/marks checkboxes, scroll settings and dropdowns save reliably
  • Stable pane id: settings open on the last-used section after restart
  • Native menulist dropdowns fix first-open dead controls
  • Robust pane init (unbounded retry + MutationObserver)

v1.6.2

Choose a tag to compare

@ZorroStardust ZorroStardust released this 12 Aug 11:11

What's New

Marks persistence fixed on Zotero 9

Marks now survive Zotero restarts. Root cause was a triple Zotero 9 API difference:

  • \Zotero.Item\ has no .extra\ property — fields must go through \getField/\setField\ (a plain assignment was silently never written to the database)
  • The \extra\ field is not valid for \�ttachment\ items in Zotero 9
  • Child notes cannot be parented to attachments in Zotero 9

Marks are now stored as \zv-marks-: {json}\ lines in the parent item's Extra field (synced via Zotero sync, one line per PDF under the same item), with a device-local pref as fallback. Enable via Preferences → Marks → Persist marks.

v1.6.1

Choose a tag to compare

@ZorroStardust ZorroStardust released this 12 Aug 10:41

What's New

Startup robustness (Zotero 9 focus)

  • Reader sweep now enumerates \Zotero.Reader._readers\ — the old \Zotero_Tabs.tabs\ API does not exist in Zotero 9, so the sweep was silently dead there. Restored readers are now injected ~11ms after startup.
  • Two-phase bootstrap startup: readers/panes wired before Zotero's initialization completes (idempotent).
  • Main-window keys are forwarded to the selected reader (hjkl etc. work without clicking into the PDF); the PDF iframe is auto-focused on the first forwarded key.
  • All keys landing on the reader's outer document are now routed to the reader.
  • \PDF loading…\ status feedback while the PDF document is still loading.
  • Marks loading retries while the item database is not ready yet.

Known issue (shelved, ZV-004 in PENDING_ISSUES.md): after a restart, restored readers may ignore hjkl for a few seconds until the PDF finishes loading — pre-existing behavior, also present in v1.5.0.

v1.6.0

Choose a tag to compare

@ZorroStardust ZorroStardust released this 12 Aug 08:19

What's New

Vim-style Marks (GitHub issue: number-key tags from sioyek)

  • \m\ set a mark, \<x>\\ jump back, \dm\ delete, \dM\ delete all
  • Mark characters: \�-\z\ and \