Skip to content

v0.86.0

Choose a tag to compare

@fezcode fezcode released this 04 Sep 09:33
· 12 commits to main since this release

Navigation

  • Back / Forward (Ctrl+[ / Ctrl+], also Alt+← / Alt+→) walk a browser-style history of visited locations — file, caret, scroll and mode. Every note open, tab switch and deliberate caret jump records where you were leaving from, so Back lands where you actually were rather than where you arrived. Pushing from mid-stack drops the forward entries, exactly like a browser.
  • Go to line (Ctrl+G), and Last edit, which jumps back to the caret at the last buffer mutation.
  • A new Go menu sits between View and Help: Back, Forward, Last edit, Go to File / Line / Heading / Tag, Follow link, Backlinks, Graph.

macOS: Cmd is the accelerator

  • Every shortcut uses ⌘ instead of Ctrl, and is shown that way — in the menus, the command palette, the chrome tooltips and the keybindings editor (⌘⇧P, in the platform's ⌃⌥⇧⌘ order). Control is left alone for the text motions macOS reserves it for.
  • Bindings are still stored with the portable ctrl+ spelling, so a settings.lua moves between machines unchanged; only the physical key differs.
  • The native menu bar carries real ⌘ key equivalents — but only for rows whose action is right to run whatever has focus. The clipboard / undo / find family is deliberately excluded so those keystrokes still reach a focused text field, and only the first row to claim a combo gets it.
  • ⌘H is the system's "hide application" and never reaches an app, so Find & Replace also answers to the platform's own ⌥⌘F.

#tag relations

Tags are now the vault's second relation, alongside [[wiki links]]: where [[…]] points at one file, #… names a subject any number of notes can share.

  • Highlighted and clickable in preview — they were edit-mode-only before. Clicking one searches the vault; hovering shows where it goes.
  • Auto-complete: typing # mid-line lists every tag in the vault, fuzzy-filtered. Column 0 is left alone, since a # there is a heading marker, and an empty result closes the list rather than nagging.
  • Paths in both pickers: [[ and # rows now carry a muted vault-relative path column (notes/ideas/ml.md, +3 for tags used in more notes), as does the tag panel. Two notes called "index" in different folders stay distinguishable.
  • Graph view gains one node per tag, with an edge from every note that mentions it (frontmatter included). Click a note to open it, a tag to search for it.

One store backs the panel, the popup and the graph, so all three agree on what a tag is.

Internals

  • KMOD_PRIMARY and a single build_keystr mapping are the whole of the Cmd/Ctrl split; MENU_COUNT replaces the hardcoded 4s across the title-bar strip and both native menu bars.
  • New tags_post pass in markdown.c produces MdTag spans, scanned per rendered line so a span can't run into the next paragraph.
  • test_markdown pins the tag rules — C# and issue#12 stay plain, headings never read as tags, and a 63-byte name cap keeps a stray # from painting a line. test_graph covers node kinds, edge dedup and layout.

Downloads

  • Windows — Descry-Setup-0.86.0.exe
  • macOS (Apple silicon) — Descry-0.86.0.dmg (drag-to-Applications) or Descry-0.86.0-macos-arm64.zip (bare app bundle)

The macOS build is a self-contained arm64 Descry.app — SDL2, FreeType, HarfBuzz, libpng and libjpeg are bundled, so no Homebrew is needed. It is ad-hoc signed: first launch is right-click → Open.