diff --git a/src/FileTreeGenerator.ts b/src/FileTreeGenerator.ts index 738b8c1..51ac597 100644 --- a/src/FileTreeGenerator.ts +++ b/src/FileTreeGenerator.ts @@ -1,5 +1,5 @@ +import { SettingsTab } from "./SettingsTab"; import { GenerateTree } from "#/commands"; -import { SettingsTab } from "#/settings"; import type { App, Command, PluginManifest } from "obsidian"; import { Plugin } from "obsidian"; diff --git a/src/settings/SettingsTab.ts b/src/SettingsTab.ts similarity index 57% rename from src/settings/SettingsTab.ts rename to src/SettingsTab.ts index 3aff2ec..0690c06 100644 --- a/src/settings/SettingsTab.ts +++ b/src/SettingsTab.ts @@ -4,6 +4,16 @@ import { PluginSettingTab, Setting } from "obsidian"; export class SettingsTab extends PluginSettingTab { + private static instance: SettingsTab; + + private static setInstance = (instance: SettingsTab): void => { + SettingsTab.instance = instance; + }; + + public static getInstance = (): SettingsTab => { + return SettingsTab.instance; + }; + public static DEFAULT_SETTINGS: PluginSettings = { ignore: [".git", "node_modules"] }; @@ -13,8 +23,10 @@ export class SettingsTab extends PluginSettingTab { private plugin: FileTreeGenerator; constructor(plugin: FileTreeGenerator) { + super(plugin.app, plugin); this.plugin = plugin; + SettingsTab.setInstance(this); } public loadSettings = async(): Promise => { @@ -34,14 +46,23 @@ export class SettingsTab extends PluginSettingTab { .setName("Ignore patterns") .setDesc("This will skip this pattern when generating the tree") .addTextArea( - (text) => text - .setPlaceholder("filters according to .gitignore spec 2.22.1") - .setValue(this.settings.ignore.join("\n")) - .onChange(async(value) => { - this.settings.ignore = value.split("\n"); - await this.saveSettings(); - }) + (text) => { + text.inputEl.style.width = "100%"; + text.inputEl.rows = 8; + + return text + .setPlaceholder("filters according to .gitignore spec 2.22.1") + .setValue(this.settings.ignore.join("\n")) + .onChange(async(value) => { + this.settings.ignore = value.split("\n"); + await this.saveSettings(); + }); + } ); }; + public getSettings = (): PluginSettings => { + return { ...this.settings }; + }; + } \ No newline at end of file diff --git a/src/settings/settings.type.ts b/src/settings.type.ts similarity index 100% rename from src/settings/settings.type.ts rename to src/settings.type.ts diff --git a/src/settings/index.ts b/src/settings/index.ts deleted file mode 100644 index cd798eb..0000000 --- a/src/settings/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./SettingsTab"; -export * from "./settings.type"; \ No newline at end of file