From 1628107f4a5fa1152b20dc384a4c79f5982e223c Mon Sep 17 00:00:00 2001 From: lazyloong <2950449004@qq.com> Date: Thu, 16 May 2024 15:54:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8F=8C=E9=93=BE=E5=BB=BA=E8=AE=AE=20?= =?UTF-8?q?tab=20=E9=94=AE=E8=A1=A5=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- obsidian.d.ts | 20 ++++++++++++++++++++ src/editorSuggest/fileEditorSuggest.ts | 4 ++++ src/modal/modal.ts | 8 -------- 3 files changed, 24 insertions(+), 8 deletions(-) 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;