diff --git a/obsidian.d.ts b/obsidian.d.ts index ff3e324..67cb684 100644 --- a/obsidian.d.ts +++ b/obsidian.d.ts @@ -64,4 +64,24 @@ declare module "obsidian" { interface Scope { keys: any[]; } + interface SuggestModal { + chooser: { + values: T[]; + suggestions: HTMLElement; + selectedItem: number; + addMessage(emptyStateText: string): unknown; + setSuggestions(arg0: T[]): void; + setSelectedItem(index: number, e: KeyboardEvent): void; + }; + } + interface EditorSuggest { + suggestions: { + chooser: this; + containerEl: HTMLDivElement; + selectedItem: number; + suggestions: Array; + values: T[]; + useSelectedItem(e: KeyboardEvent): boolean; + }; + } } diff --git a/src/editorSuggest/fileEditorSuggest.ts b/src/editorSuggest/fileEditorSuggest.ts index b6f08f7..b9d0a3e 100644 --- a/src/editorSuggest/fileEditorSuggest.ts +++ b/src/editorSuggest/fileEditorSuggest.ts @@ -52,6 +52,10 @@ export default class FileEditorSuggest extends EditorSuggest { ); this.plugin = plugin; this.index = this.plugin.fileModal.index; + this.scope.register([], "Tab", (e) => { + e.preventDefault(); + this.suggestions.useSelectedItem(e); + }); let prompt = [ { command: "输入 #", diff --git a/src/modal/modal.ts b/src/modal/modal.ts index 9dbc973..d7061ed 100644 --- a/src/modal/modal.ts +++ b/src/modal/modal.ts @@ -4,14 +4,6 @@ import { HistoryMatchDataNode, PinyinIndex, MatchData, Item, SuggestionRenderer export default abstract class FuzzyModal extends SuggestModal> { historyMatchData: HistoryMatchDataNode; - chooser: { - setSuggestions(arg0: MatchData[]): void; - addMessage(emptyStateText: string): unknown; - suggestions: HTMLElement; - values: MatchData[]; - selectedItem: number; - setSelectedItem(index: number, e: KeyboardEvent): void; - }; index: PinyinIndex; plugin: ThePlugin; useInput: boolean;