diff --git a/src/main.ts b/src/main.ts index a46ba0b..a50aca9 100644 --- a/src/main.ts +++ b/src/main.ts @@ -29,9 +29,11 @@ export default class Main extends Plugin { saveCommandDefinition.callback = () => { this.originalSaveCallback(); - if (this.settings.updateOnSave) { + const editor = this.app.workspace.activeEditor?.editor; + + if (this.settings.updateOnSave && editor) { const operator = new Operator(this.app as UnsafeApp); - operator.updateActiveFile(); + operator.updateActiveFile(editor); } }; } diff --git a/src/operations.ts b/src/operations.ts index 8d6f277..7d624d0 100644 --- a/src/operations.ts +++ b/src/operations.ts @@ -1,4 +1,4 @@ -import { Editor, MarkdownView, type TFile } from "obsidian"; +import { type Editor, type TFile } from "obsidian"; import { Replacer, UnsafeApp } from "./types"; import { createReplacerFromContent } from "./dataview-publisher"; import { DataviewApi } from "obsidian-dataview"; @@ -13,8 +13,7 @@ export class Operator { this.dv = getDataviewAPI(app); } - async updateActiveFile() { - const editor = this.getEditor(); + async updateActiveFile(editor: Editor) { const cursor = editor.getCursor(); const content = editor.getValue(); @@ -25,14 +24,6 @@ export class Operator { editor.setCursor(cursor); } - private getEditor(): Editor { - const activeLeaf = this.app.workspace.getActiveViewOfType(MarkdownView); - if (!activeLeaf) { - throw new Error("No active leaf found"); - } - return activeLeaf.editor; - } - updateFromSource(source: string) { const targetTfiles = this.retrieveTfilesFromSource(source);