diff --git a/src/FileFilter.ts b/src/FileFilter.ts index 4aa4e17..323879e 100644 --- a/src/FileFilter.ts +++ b/src/FileFilter.ts @@ -40,5 +40,15 @@ export class FileFilter { // Метод ignorer.ignores(filePath) вернет true, если файл должен быть ИГНОРИРОВАН. // Нам нужно инвертировать это, чтобы получить "разрешен ли файл". return !this.ignorer.ignores(filePath); + } + + /** + * Updates the filter المستقيمs with new plugin settings and re-initializes the ignorer. + * @param newSettings The new plugin settings. + */ + public updateSettings(newSettings: Readonly): void { + console.log("FileFilter: Settings updated. Re-initializing ignorer."); // Для отладки + this.settings = newSettings; // Обновляем ссылку на настройки + this.initIgnorer(); // Переинициализируем ignorer с новыми pathGlobs } } diff --git a/src/main.ts b/src/main.ts index 379134d..f436c71 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,6 +6,7 @@ import FileStateHolder from "./FileStateHolder"; import { CheckboxSyncPluginSettingTab } from "./ui/CheckboxSyncPluginSettingTab"; import SyncController from "./SyncController"; import { CheckboxSyncPluginSettings, DEFAULT_SETTINGS } from "./types"; +import { FileFilter } from "./FileFilter"; const DEBUG_FLAG_NAME = 'CHECKBOX_SYNC_DEBUG'; @@ -25,10 +26,12 @@ export default class CheckboxSyncPlugin extends Plugin { private fileStateHolder: FileStateHolder; private fileLoadEventHandler: FileLoadEventHandler; private fileChangeEventHandler: FileChangeEventHandler; + private fileFilter: FileFilter; async onload() { await this.loadSettings(); + this.fileFilter = new FileFilter(this.settings); this.fileStateHolder = new FileStateHolder(this.app.vault); this.checkboxUtils = new CheckboxUtils(this.settings); this.syncController = new SyncController(this.app.vault, this.checkboxUtils, this.fileStateHolder); @@ -52,8 +55,11 @@ export default class CheckboxSyncPlugin extends Plugin { async updateSettings(callback: (settings: CheckboxSyncPluginSettings) => void | Promise) { await callback(this._settings); this.setDebugFlag(this.settings.consoleEnabled); + this.fileFilter.updateSettings(this.settings); await this.saveData(this.settings); + + if (this.settings.enableAutomaticFileSync) { //надо пересинхронизировать все файлы в кеше const allFile = this.fileStateHolder.getAllFiles();