Skip to content

Commit 4087119

Browse files
committed
startupScript setting inspired by css-snippets
1 parent 7672274 commit 4087119

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

jsEngine/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export default class JsEnginePlugin extends Plugin {
6060
async loadSettings(): Promise<void> {
6161
const loadedSettings = (await this.loadData()) as JsEnginePluginSettings;
6262
this.settings = Object.assign({}, JS_ENGINE_DEFAULT_SETTINGS, loadedSettings);
63-
if (this.settings.startupScriptsDirectory === undefined) {
63+
if (!this.settings.startupScriptsDirectory) {
6464
this.settings.startupScriptsDirectory = normalizePath(this.app.vault.configDir + '/snippets');
6565
}
6666
}

jsEngine/settings/Settings.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ import { StartupScriptsModal } from 'jsEngine/settings/StartupScriptModal';
33
import type { App } from 'obsidian';
44
import { PluginSettingTab, Setting } from 'obsidian';
55

6+
declare module 'obsidian' {
7+
interface App {
8+
openWithDefaultApp(path: string): void;
9+
}
10+
}
11+
612
export interface JsEnginePluginSettings {
713
startupScriptsDirectory: string | undefined;
814
enabledStartupScripts: string[];
@@ -37,5 +43,33 @@ export class JsEnginePluginSettingTab extends PluginSettingTab {
3743
new StartupScriptsModal(this.plugin).open();
3844
});
3945
});
46+
47+
new Setting(containerEl)
48+
.setName('JS snippets (loaded on startup)')
49+
.setHeading()
50+
.addExtraButton(el => {
51+
el.setTooltip('Reload snippets')
52+
.setIcon('refresh-cw')
53+
.onClick(() => {
54+
/* TODO */
55+
});
56+
})
57+
.addExtraButton(el => {
58+
el.setTooltip('Open snippets folder')
59+
.setIcon('folder-open')
60+
.onClick(() => this.app.openWithDefaultApp(settings.startupScriptsDirectory ?? ''));
61+
});
62+
63+
new Setting(containerEl)
64+
.setName('JS Snippets Folder')
65+
.setDesc('The folder to search for JavaScript files to load')
66+
.addText(el => {
67+
el.setPlaceholder('Folder')
68+
.setValue(settings.startupScriptsDirectory ?? '')
69+
.onChange(async (value: string) => {
70+
settings.startupScriptsDirectory = value;
71+
await this.plugin.saveSettings();
72+
});
73+
});
4074
}
4175
}

0 commit comments

Comments
 (0)