mirror of
https://github.com/wenlzhang/obsidian-folder-navigator.git
synced 2026-07-22 05:41:23 +00:00
Support default folder expanding
This commit is contained in:
parent
01c8e4b86c
commit
09985c7d4e
4 changed files with 36 additions and 2 deletions
|
|
@ -1,10 +1,13 @@
|
|||
import { App, FuzzySuggestModal, TFolder, WorkspaceLeaf } from "obsidian";
|
||||
import type FolderNavigatorPlugin from "./main";
|
||||
|
||||
export class FolderSuggestModal extends FuzzySuggestModal<TFolder> {
|
||||
folders: TFolder[];
|
||||
plugin: FolderNavigatorPlugin;
|
||||
|
||||
constructor(app: App) {
|
||||
constructor(app: App, plugin: FolderNavigatorPlugin) {
|
||||
super(app);
|
||||
this.plugin = plugin;
|
||||
this.setPlaceholder("Type folder name...");
|
||||
this.folders = this.getAllFolders();
|
||||
}
|
||||
|
|
@ -84,6 +87,21 @@ export class FolderSuggestModal extends FuzzySuggestModal<TFolder> {
|
|||
() => folderEl.removeClass("nav-folder-title-highlighted"),
|
||||
2000,
|
||||
);
|
||||
|
||||
// If expandTargetFolder is enabled, expand the target folder
|
||||
if (this.plugin.settings.expandTargetFolder) {
|
||||
const collapseIndicator =
|
||||
folderEl.querySelector(".collapse-icon");
|
||||
if (collapseIndicator) {
|
||||
const isCollapsed =
|
||||
collapseIndicator.classList.contains(
|
||||
"is-collapsed",
|
||||
);
|
||||
if (isCollapsed) {
|
||||
(collapseIndicator as HTMLElement).click();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 50);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ export default class FolderNavigatorPlugin extends Plugin {
|
|||
id: "open-folder-navigator",
|
||||
name: "Navigate to folder",
|
||||
callback: () => {
|
||||
new FolderSuggestModal(this.app).open();
|
||||
new FolderSuggestModal(this.app, this).open();
|
||||
},
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,10 @@ import { App } from "obsidian";
|
|||
|
||||
export interface PluginSettings {
|
||||
maxResults: number;
|
||||
expandTargetFolder: boolean;
|
||||
}
|
||||
|
||||
export const DEFAULT_SETTINGS: PluginSettings = {
|
||||
maxResults: 10,
|
||||
expandTargetFolder: true, // Enable by default for better navigation
|
||||
};
|
||||
|
|
|
|||
|
|
@ -26,5 +26,19 @@ export class SettingsTab extends PluginSettingTab {
|
|||
await this.plugin.saveSettings();
|
||||
}),
|
||||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName("Expand target folder on navigation")
|
||||
.setDesc(
|
||||
"When enabled, folders will be automatically expanded when you navigate to them",
|
||||
)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.settings.expandTargetFolder)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.expandTargetFolder = value;
|
||||
await this.plugin.saveSettings();
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue