Version: 2022.1
言語: 日本語
SearchProvider クラス
検索の実行

検索プロバイダーの登録

新しい検索プロバイダーを追加するには、以下の例のように関数を作成し、SearchItemProvider 属性でタグ付けします。

[SearchItemProvider]
internal static SearchProvider CreateProvider()
{
    return new SearchProvider(type, displayName)
    {
        filterId = "me:",
        fetchItems = (context, items, provider) =>
        {
            var itemNames = new List<string>();
            var shortcuts = new List<string>();
            GetMenuInfo(itemNames, shortcuts);

            items.AddRange(itemNames.Where(menuName =>
                    SearchProvider.MatchSearchGroups(context.searchText, menuName))
                .Select(menuName => provider.CreateItem(menuName,
                                            Path.GetFileName(menuName), menuName)));
        },

        fetchThumbnail = (item, context) => Icons.shortcut
    };
}
  • 関数は、新しい SearchProvider のインスタンスを返す必要があります。
  • SearchProvider インスタンスは、以下を備えている必要があります。
  • 一意の type (タイプ)。例えば、 AssetMenuScene など。
  • フィルターペイン で使用する displayName (ディスプレイ名)。
  • 任意の filterId は、テキストベースのフィルタリング のための検索トークンを提供します。例えば、p: は、Asset 検索 のフィルター ID です。

検索プロバイダーのショートカットを登録

新しいプロバイダーのショートカットを登録するには、以下のようにします。

[UsedImplicitly, Shortcut("Help/Quick Search/Assets")]
private static void PopQuickSearch()
{
    // "Asset" プロバイダーのみを使用可能にして Search を起動します。
    QuickSearchTool.OpenWithContextualProvider("asset");
}

ショートカットマネージャー を使って、ショートカットをキーまたはキーの組み合わせにマップできます。

SearchProvider クラス
検索の実行