No description
Find a file
johnny1093 61f15f04e0 fix: restore this.forceUpdate() - it was never actually broken
Corrects commit b83e10a. I removed these calls on the assumption
that `this` is undefined in a Preact function component, based on
standard JS semantics. That's wrong for Preact specifically: its
diff implementation invokes function components as `c.render(props,
state, context)` (see node_modules/preact/src/diff/index.js), which
is a method call and therefore binds `this` to Preact's internal
per-instance "PFC backing instance" - a real object with a working
forceUpdate(). So this.forceUpdate() was live code all along, and
removing it broke in-place re-rendering: adding/removing/renaming/
recoloring a command or macro would save correctly but the settings
list wouldn't visually update until you switched tabs and back
(reported by the user after testing).

Restores the calls, now with an explicit `this: { forceUpdate: () =>
void }` parameter on each component function so TypeScript actually
knows the type instead of silently treating it as `any` like the
original code did.
2026-07-11 10:11:20 -04:00
.github Update GitHub Sponsors username in FUNDING.yml 2026-04-21 10:51:54 -04:00
locale test: add vitest suite for macros, icons, modes, styles, and locales 2026-07-11 09:13:56 -04:00
scripts feat: remove text toolbar from Commander (extracted to standalone plugin) 2026-06-13 19:25:09 -04:00
src fix: restore this.forceUpdate() - it was never actually broken 2026-07-11 10:11:20 -04:00
.editorconfig feat: 🚧 Added initial plugin boilerplate 2022-04-21 21:00:51 +02:00
.gitignore feat: support new icon-set after obsidian 1.7.3 2024-10-11 08:47:06 +08:00
.npmrc feat: 🚧 Added initial plugin boilerplate 2022-04-21 21:00:51 +02:00
AGENTS.md feat: remove text toolbar from Commander (extracted to standalone plugin) 2026-06-13 19:25:09 -04:00
app.css feat: remove text toolbar from Commander (extracted to standalone plugin) 2026-06-13 19:25:09 -04:00
eslint.config.mts lint: defer depend/ban-dependencies for package.json build tooling 2026-07-11 10:03:28 -04:00
LICENSE.md Create LICENSE.md 2022-07-12 21:45:38 +02:00
manifest.json fix: bump minAppVersion to 1.4.4 to match actual API usage 2026-07-11 09:26:32 -04:00
package-lock.json Migrate ESLint to flat config with eslint-plugin-obsidianmd 2026-07-10 12:09:46 -04:00
package.json Migrate ESLint to flat config with eslint-plugin-obsidianmd 2026-07-10 12:09:46 -04:00
README.md Update README.md 2022-08-07 17:25:44 -04:00
tailwind.config.js feat: add tailwind support (hacky) 2022-11-29 20:17:13 +01:00
tsconfig.json deps: upgrade 2022-11-29 19:46:59 +01:00
versions.json chore: correct version to 0.5.6 2026-06-13 19:46:22 -04:00
vitest.config.ts lint: scope Node/mobile-compat rules off test and config files, tidy up a few regressions 2026-07-11 09:55:13 -04:00

commander cover (2) GitHub tag (Latest by date) GitHub all releases

Commander is a plugin for Obsidian which allows you to add commands to different parts of the user interface.

commander overview

Features

  • add commands
  • remove commands
  • re order commands (via plugin settings menu)
  • edit commands
  • hide commands added by Obsidian or other plugins
  • choose which devices commands appear on (for sync users)

Demo

Commander Demo

How you can improve this Plugin

Feedback

Share feedback, issues, and ideas on Github, with our Commander feedback form, or tag the authors on Discord!

Adding translations

If you want to help and translate this Plugin to new languages, see locale/. Copy the English (en.json) File to your language file and start changing the sentences on the right.

Credits

Footer