obsidian-media-db-sync/packages/obsidian/src/settings/suggesters/FolderSuggest.ts
2026-05-06 16:26:59 +02:00

17 lines
605 B
TypeScript

import { AbstractInputSuggest, TFolder } from 'obsidian';
export class FolderSuggest extends AbstractInputSuggest<TFolder> {
protected getSuggestions(query: string): TFolder[] | Promise<TFolder[]> {
const lowerCaseInputStr = query.toLowerCase();
// we do two filters because otherwise TS type inference does convert the array to TFolder[]
return this.app.vault
.getAllLoadedFiles()
.filter(file => file instanceof TFolder)
.filter(file => file.path.toLowerCase().includes(lowerCaseInputStr));
}
renderSuggestion(value: TFolder, el: HTMLElement): void {
el.setText(value.path);
}
}