comparison src/settings.ts @ 43:7e981d54a055

Support state persistence between sessions There is now an option to save/load file states on disk.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 20 Sep 2023 22:40:25 -0700
parents 815b93d13e0f
children
comparison
equal deleted inserted replaced
42:d52beb77d109 43:7e981d54a055
6 6
7 import RememberFileStatePlugin from './main'; 7 import RememberFileStatePlugin from './main';
8 8
9 export interface RememberFileStatePluginSettings { 9 export interface RememberFileStatePluginSettings {
10 rememberMaxFiles: number; 10 rememberMaxFiles: number;
11 persistStates: boolean;
11 } 12 }
12 13
13 export const DEFAULT_SETTINGS: RememberFileStatePluginSettings = { 14 export const DEFAULT_SETTINGS: RememberFileStatePluginSettings = {
14 // Matches the number of files Obsidian remembers the undo/redo 15 // Matches the number of files Obsidian remembers the undo/redo
15 // history for by default (at least as of 0.13.17). 16 // history for by default (at least as of 0.13.17).
16 rememberMaxFiles: 20 17 rememberMaxFiles: 20,
18 persistStates: true
17 } 19 }
18 20
19 export class RememberFileStatePluginSettingTab extends PluginSettingTab { 21 export class RememberFileStatePluginSettingTab extends PluginSettingTab {
20 plugin: RememberFileStatePlugin; 22 plugin: RememberFileStatePlugin;
21 23
39 if (!isNaN(intValue)) { 41 if (!isNaN(intValue)) {
40 this.plugin.settings.rememberMaxFiles = intValue; 42 this.plugin.settings.rememberMaxFiles = intValue;
41 await this.plugin.saveSettings(); 43 await this.plugin.saveSettings();
42 } 44 }
43 })); 45 }));
46
47 new Setting(containerEl)
48 .setName('Save states')
49 .setDesc('Whether to save the state of all open files to disk')
50 .addToggle(toggle => toggle
51 .setValue(this.plugin.settings.persistStates)
52 .onChange(async (value: boolean) => {
53 this.plugin.settings.persistStates = value;
54 await this.plugin.saveSettings();
55 }));
44 } 56 }
45 } 57 }