mirror of
https://github.com/Ellpeck/ObsidianCustomFrames.git
synced 2024-11-24 02:08:34 +01:00
also reveal the leaf when using the open command
This commit is contained in:
parent
51e09944db
commit
bbf1cd22fb
2 changed files with 9 additions and 7 deletions
|
@ -3,4 +3,6 @@ An Obsidian plugin that allows adding iframes with custom styling as editor tabs
|
||||||
|
|
||||||
![A screenshot of the Obsidian Custom Frames plugin in action](screenshot.png)
|
![A screenshot of the Obsidian Custom Frames plugin in action](screenshot.png)
|
||||||
|
|
||||||
|
To use this plugin, simply go into its settings and add a new frame, either from a preset shipped with the plugin, or a custom one that you can edit yourself. Each frame's tab can be opened using the 'Custom Frames: Open' command.
|
||||||
|
|
||||||
Note that this plugin only works on Desktop right now.
|
Note that this plugin only works on Desktop right now.
|
14
main.ts
14
main.ts
|
@ -47,13 +47,7 @@ export default class CustomFramesPlugin extends Plugin {
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: `open-${name}`,
|
id: `open-${name}`,
|
||||||
name: `Open ${frame.displayName}`,
|
name: `Open ${frame.displayName}`,
|
||||||
checkCallback: (checking: boolean) => {
|
callback: () => this.openLeaf(name),
|
||||||
if (this.app.workspace.getLeavesOfType(name).length)
|
|
||||||
return false;
|
|
||||||
if (!checking)
|
|
||||||
this.app.workspace.getRightLeaf(false).setViewState({ type: name });
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
} catch {
|
} catch {
|
||||||
console.error(`Couldn't register frame ${name}, is there already one with the same name?`);
|
console.error(`Couldn't register frame ${name}, is there already one with the same name?`);
|
||||||
|
@ -70,6 +64,12 @@ export default class CustomFramesPlugin extends Plugin {
|
||||||
async saveSettings() {
|
async saveSettings() {
|
||||||
await this.saveData(this.settings);
|
await this.saveData(this.settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async openLeaf(name: string): Promise<void> {
|
||||||
|
if (!this.app.workspace.getLeavesOfType(name).length)
|
||||||
|
await this.app.workspace.getRightLeaf(false).setViewState({ type: name });
|
||||||
|
this.app.workspace.revealLeaf(this.app.workspace.getLeavesOfType(name)[0]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class CustomFrameView extends ItemView {
|
class CustomFrameView extends ItemView {
|
||||||
|
|
Loading…
Reference in a new issue