2026-03-27 19:53:19 +01:00
|
|
|
const { Plugin, TFile, TFolder } = require("obsidian");
|
|
|
|
|
const { showFilePicker, addFileMenuItems, addFolderMenuItems } = require("./file-actions");
|
|
|
|
|
const { patchSettingsModal, unpatchSettingsModal } = require("./settings/inject");
|
2026-03-29 17:44:41 +02:00
|
|
|
const pluginRegistry = require("./plugin-registry");
|
2026-03-30 01:05:20 +02:00
|
|
|
const { initStatusBar } = require("./status-bar");
|
2026-04-03 12:19:24 +02:00
|
|
|
const { WorkspacePickerModal } = require("./workspace-picker");
|
2026-03-27 19:53:19 +01:00
|
|
|
|
|
|
|
|
window.__obsidianAPI = require("obsidian");
|
|
|
|
|
|
|
|
|
|
class IgnisBridgePlugin extends Plugin {
|
|
|
|
|
async onload() {
|
|
|
|
|
console.log("[ignis-bridge] Plugin loaded");
|
|
|
|
|
|
2026-03-29 17:44:41 +02:00
|
|
|
await pluginRegistry.refresh();
|
2026-03-27 19:53:19 +01:00
|
|
|
patchSettingsModal(this);
|
2026-03-30 01:05:20 +02:00
|
|
|
this._statusBarInterval = initStatusBar(this);
|
2026-03-27 19:53:19 +01:00
|
|
|
|
|
|
|
|
this.addRibbonIcon("upload", "Upload file", () => {
|
|
|
|
|
showFilePicker(this.app);
|
|
|
|
|
});
|
|
|
|
|
|
2026-04-03 12:19:24 +02:00
|
|
|
this.addCommand({
|
|
|
|
|
id: "open-workspace-in-new-tab",
|
|
|
|
|
name: "Open workspace in new tab",
|
|
|
|
|
callback: () => {
|
|
|
|
|
new WorkspacePickerModal(this.app).open();
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
2026-03-27 19:53:19 +01:00
|
|
|
this.registerEvent(
|
|
|
|
|
this.app.workspace.on("file-menu", (menu, file) => {
|
|
|
|
|
if (file instanceof TFile) {
|
|
|
|
|
addFileMenuItems(menu, file);
|
|
|
|
|
} else if (file instanceof TFolder) {
|
|
|
|
|
addFolderMenuItems(menu, file, this.app);
|
|
|
|
|
}
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onunload() {
|
2026-03-30 01:05:20 +02:00
|
|
|
if (this._statusBarInterval) {
|
|
|
|
|
clearInterval(this._statusBarInterval);
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-27 19:53:19 +01:00
|
|
|
unpatchSettingsModal(this);
|
|
|
|
|
console.log("[ignis-bridge] Plugin unloaded");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = IgnisBridgePlugin;
|