新しい検索プロバイダーを追加するには、以下の例のように関数を作成し、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
(タイプ)。例えば、 Asset、Menu、Scene など。displayName
(ディスプレイ名)。filterId
は、テキストベースのフィルタリング のための検索トークンを提供します。例えば、p:
は、Asset 検索 のフィルター ID です。新しいプロバイダーのショートカットを登録するには、以下のようにします。
[UsedImplicitly, Shortcut("Help/Quick Search/Assets")]
private static void PopQuickSearch()
{
// "Asset" プロバイダーのみを使用可能にして Search を起動します。
QuickSearchTool.OpenWithContextualProvider("asset");
}
ショートカットマネージャー を使って、ショートカットをキーまたはキーの組み合わせにマップできます。