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
-
/tableleaves 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+BandCmd/Ctrl+Iwithout 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, pressCmd/Ctrl+B, thenCmd/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, supportsVfor complete rows, and applies delete, change, and yank across cells. How to test locally: enable Vim mode, focus a table cell, pressv, move across cells and rows, then tryd,c, ory; the visible range and operation follow the full selection. PressVto select whole rows. -
Vim block selection and cursor feedback stay in sync. (discussion #597, reported by @NunonuN)
Ctrl+Vnow paints every row in its visual block without opening the generic selection toolbar. The Outline follows the editor cursor, and the status bar reportsLnandCol. ExistingHandLviewport-edge motion was revalidated. How to test locally: enable Vim mode, pressCtrl+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
chowncould 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 containingchownand several unrelated notes with long excerpts, open note search withCmd/Ctrl+P, and enterchown; 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.
searchNoteIndexstarts 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.