Mercurial > obsidian-remember-file-state
annotate src/settings.ts @ 50:1fe2cd2c603f
Add optional file logging.
This is only for debugging purposes, especially for troubleshooting
issues around app shutdown or app reloads.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 02 Oct 2023 10:02:54 -0700 |
parents | 7e981d54a055 |
children |
rev | line source |
---|---|
0 | 1 import { |
21
815b93d13e0f
Improve typescript compliance
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
2 App, |
0 | 3 PluginSettingTab, |
4 Setting | |
5 } from 'obsidian'; | |
6 | |
21
815b93d13e0f
Improve typescript compliance
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
7 import RememberFileStatePlugin from './main'; |
0 | 8 |
9 export interface RememberFileStatePluginSettings { | |
10 rememberMaxFiles: number; | |
43
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
11 persistStates: boolean; |
0 | 12 } |
13 | |
14 export const DEFAULT_SETTINGS: RememberFileStatePluginSettings = { | |
15 // Matches the number of files Obsidian remembers the undo/redo | |
16 // history for by default (at least as of 0.13.17). | |
43
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
17 rememberMaxFiles: 20, |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
18 persistStates: true |
0 | 19 } |
20 | |
21 export class RememberFileStatePluginSettingTab extends PluginSettingTab { | |
22 plugin: RememberFileStatePlugin; | |
23 | |
24 constructor(app: App, plugin: RememberFileStatePlugin) { | |
25 super(app, plugin); | |
26 this.plugin = plugin; | |
27 } | |
28 | |
29 display(): void { | |
30 const {containerEl} = this; | |
31 | |
32 containerEl.empty(); | |
33 | |
34 new Setting(containerEl) | |
35 .setName('Remember files') | |
36 .setDesc('How many files to remember at most') | |
37 .addText(text => text | |
21
815b93d13e0f
Improve typescript compliance
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
38 .setValue(this.plugin.settings.rememberMaxFiles?.toString()) |
815b93d13e0f
Improve typescript compliance
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
39 .onChange(async (value: string) => { |
0 | 40 const intValue = parseInt(value); |
41 if (!isNaN(intValue)) { | |
42 this.plugin.settings.rememberMaxFiles = intValue; | |
43 await this.plugin.saveSettings(); | |
44 } | |
21
815b93d13e0f
Improve typescript compliance
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
45 })); |
43
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
46 |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
47 new Setting(containerEl) |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
48 .setName('Save states') |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
49 .setDesc('Whether to save the state of all open files to disk') |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
50 .addToggle(toggle => toggle |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
51 .setValue(this.plugin.settings.persistStates) |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
52 .onChange(async (value: boolean) => { |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
53 this.plugin.settings.persistStates = value; |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
54 await this.plugin.saveSettings(); |
7e981d54a055
Support state persistence between sessions
Ludovic Chabant <ludovic@chabant.com>
parents:
21
diff
changeset
|
55 })); |
0 | 56 } |
57 } |