Skip to content

v1.3.2

Choose a tag to compare

@github-actions github-actions released this 16 Jul 22:00
· 49 commits to main since this release

Added

  • Link pinning: pin a link to what it should track, from its right-click submenu or the palette — the symbol on its line (sym:Player), the kind of thing there (kind:class), or the exact line (line:<hash>). Anchors are requirements and combine, so sym:Player kind:class tells the file Player.cs apart from the class Player in it.
  • The pin lives in the link's markdown title rather than its text, so [the player](…/Player.cs:4 "sym:Player") tracks. Link text no longer affects anything, and a title that isn't a pin is left alone.
  • Embeds pin the same way, with a bind: line in the block. A drifted embed marks its header and names the line the code moved to; the update commands fix its target, ranges included (the window keeps its length). Pin one from the block's right-click menu.
  • New commands: Insert code link to a line; Pin code link to its symbol / kind / exact line; Unpin code link; Pin unpinned code links in this note / the whole vault.

Changed

  • Tracking is opt-in: only a pinned link is marked or updated. Any link whose text happened to name a symbol used to be tracked, so a retitled link read as broken and the update commands could rewrite links you hadn't asked about. Existing notes stop being tracked until pinned — run "Pin unpinned code links in the whole vault" once.
  • A link or embed pointing at a whole file no longer carries a :1 it never meant; the line goes along with the punctuation that introduces it (: in the editor presets, #L in the permalinks).
  • Moving a link onto another line that still matches its pin isn't drift — a link pinned to sym:TakeDamage is fine on either one in the file.
  • The broken mark now means one thing: nothing in the file matches the pin any more, whether renamed, removed, or rewritten.

Fixed

  • The JetBrains preset tracked nothing at all. A path was only recognised after a /, so templates that introduce it with = — JetBrains' path={path}, or a custom preset's file={abs} — never resolved: no stale marks, no hover preview, and the update commands silently did nothing.
  • A link to a whole file resolved to a same-named declaration inside it and got "updated" to point at the class: [Player](…/Player.cs:1) became Player.cs:4.

Internal

  • Link bindings and the link/fence rewriting helpers moved into the shared submodule.
  • Bumped version to pass review