github ZenNotes/zennotes v2.36.0
ZenNotes v2.36.0

3 hours ago

ZenNotes 2.36.0: tables, search, and editor navigation stay under control

Table editing stays predictable, search prioritizes real word matches, and Vim navigation now keeps selections, the Outline, and cursor feedback in sync.

🐛 Fixes

  • /table leaves the cursor after the new table. (#663, reported by @junereycasuga) Inserting a table from the slash menu could put focus in the first header cell, even though the editor showed a continuation line below the widget. The generated Markdown now includes a paragraph-safe continuation outside the table, and the cursor lands there ready for the next sentence. How to test locally: type /table, choose Table, then type; the text appears below the table instead of inside its first header.

  • Bold and italic shortcuts work inside table cells. (#664, reported by @junereycasuga) The WYSIWYG cell editor previously consumed Cmd/Ctrl+B and Cmd/Ctrl+I without applying Markdown formatting. Both shortcuts now toggle **bold** and *italic*, preserve the selected text, and save through the normal table edit path. How to test locally: select text in a table cell, press Cmd/Ctrl+B, then Cmd/Ctrl+I; the cell updates and both styles remain after leaving it.

  • Vim visual mode can select across table cells and rows. (#665, reported by @junereycasuga) Table visual mode tracked only an offset inside the focused cell, so h, j, k, l, word motions, row selection, and operators could lose or collapse the selection at cell boundaries. Visual state now includes table coordinates, draws every selected segment, supports V for complete rows, and applies delete, change, and yank across cells. How to test locally: enable Vim mode, focus a table cell, press v, move across cells and rows, then try d, c, or y; the visible range and operation follow the full selection. Press V to select whole rows.

  • Vim block selection and cursor feedback stay in sync. (discussion #597, reported by @NunonuN) Ctrl+V now paints every row in its visual block without opening the generic selection toolbar. The Outline follows the editor cursor, and the status bar reports Ln and Col. Existing H and L viewport-edge motion was revalidated. How to test locally: enable Vim mode, press Ctrl+V, select several rows, then move through headings and watch the block, Outline, and status bar update.

  • Note search favors real word matches over incidental subsequences. (#666, reported by @mptpro) A query such as chown could fuzzy-match scattered letters across long excerpts and fill the picker with unrelated notes. Queries of four or more characters now return exact substring matches first when any exist, while abbreviations and misspellings still use fuzzy search when there is no exact match. How to test locally: create one note containing chown and several unrelated notes with long excerpts, open note search with Cmd/Ctrl+P, and enter chown; only the real match appears.

🧰 For contributors

  • Slash-command table insertion emits the blank lines required for the continuation to parse as a paragraph instead of another table row.
  • The table widget handles formatting shortcuts in its editable cells and commits the transformed Markdown without losing the DOM selection.
  • Vim table visual state now stores anchor and head coordinates. Shared range helpers drive overlays and multi-cell operators, with dedicated coverage for character and linewise motions.
  • Vim-owned selections suppress the generic toolbar, block decorations use Vim's complete rectangular state, and editor cursor state drives the Outline plus status readout.
  • searchNoteIndex starts its exact-first pass at four characters. If that pass finds nothing, the existing fuzzy scorer runs unchanged, preserving short-query and typo behavior.

Local-first and keyboard-first, as always.

Don't miss a new zennotes release

NewReleases is sending notifications on new releases.