Files
BindThem/CHANGELOG.md
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

61 lines
3.3 KiB
Markdown

# Changelog
All notable changes to this project are documented in this file.
Format loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [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.