logo
/
Obsidianのプラグインから別のプラグインコマンドを呼び出す方法
2025-02-15

経緯

🏆Obsidian Heading Shifterで、リストにヘッディングを適用したあとに残りのリストをアウトデントとする必要があった
https://github.com/k4a-l/obsidian-heading-shifter/issues/33
新たに動作を実装するのは面倒なので、Obsidian Outlinerのコマンドを利用したい

方法

コマンドを直接呼び出す

Triggering an Obsidian command from within an event callbackより this.app.commands.executeCommandById('app:open-settings');
  • ドキュメントに載ってないしtsもエラーになるが、確かに実行できる
コマンド一覧はthis.app.commandsで取得できるのでそのキーを利用する
obsidian-outliner:indent-listでインデントを呼び出せたが、複数行選択してると行自体が消えてしまう
→ ホットキーを呼び出す方法を調査

ホットキー経由で呼び出す

new KeyboardEvent
  • document.dispatchEventは実行されず
  • document.activeElement?.dispatchEventで実行できた