Files
BindThem/CHANGELOG.md
T
olivier b8461c3eb0
Node.js build / build (20.x) (push) Has been cancelled
Node.js build / build (22.x) (push) Has been cancelled
chore: bump to v1.1.0
2026-09-07 17:27:56 -04:00

3.3 KiB

Changelog

All notable changes to this project are documented in this file. Format loosely follows Keep a Changelog.

[1.1.0] - 2026-09-07

Added

  • Settings page now visually groups commands by category. Each category (Better Formatting, Line Operations, etc.) renders as a collapsible card with a bordered/shaded header and an "N/M enabled" badge, instead of a flat list separated only by bold text headings. The sentence-matching regex setting moved into the Sentence Navigator category card, since it configures that category's commands. Toggling a setting no longer collapses open categories. (src/settings.ts, styles.css)

Fixed

  • Heading toggle corrupted lines starting with a tag (#tag ...). HEADING_REGEX (src/Constants.ts) matched any run of leading # characters as a heading marker, even without a following space. Obsidian tags like #project meeting notes were therefore misread as an existing H1, so running Toggle Heading - H1 on such a line stripped the # instead of adding a heading (and running any other heading level inserted a stray heading marker before the tag). The regex now requires the # run to be followed by whitespace or end-of-line before it counts as a heading, matching the ATX heading rule already used by Toggle Heading (strip formatting). (src/Constants.ts, src/ToggleHeading.ts)

  • Command enable/disable toggles in Settings required an Obsidian restart. registerCommands() only ran once in onload(), checking enabledCommands at registration time. Flipping a toggle in the settings tab saved the new state but had no effect on the already-registered commands until the plugin was reloaded, contradicting the setting's own description ("Disabled commands will not appear in the command palette"). Commands are now always registered and gated through checkCallback/editorCheckCallback, so palette visibility and hotkeys respond immediately to settings changes. Command IDs are unchanged, so existing hotkey bindings are unaffected. (src/main.ts)

  • "New Adjacent File" failed after the first use in a folder. The command always targeted a literal Untitled.md; vault.create() throws if that path already exists (very likely, since it's also Obsidian's own default new-note name), surfacing a raw error Notice on every subsequent use. It now finds the next available Untitled N.md name in the folder, mirroring Obsidian's built-in new-note behavior. (src/FileHelper.ts)

  • Selection-tracking listeners went stale for editors opened after startup. registerSelectionChangeListeners() attached keydown/click/dblclick listeners to every .cm-content element found via a single querySelectorAll at layout-ready. Editors created afterward (new panes, splits, tabs) got their own .cm-content element that was never instrumented, silently degrading the manual-vs-programmatic selection heuristic used by Select Next/Previous Occurrence. Listeners are now delegated from document in the capture phase, so any editor present now or opened later is covered. (src/main.ts)

Chore

  • Reinstalled node_modules to pull the @esbuild/win32-x64 binary; the checked in lockfile/install had resolved only @esbuild/linux-x64, so npm run build and npm run dev failed outright on this machine.