要添加新的搜索提供程序,请创建一个函数并用 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: 是资源搜索的过滤器 ID。要为新的提供程序注册快捷键,请使用:
[UsedImplicitly, Shortcut("Help/Quick Search/Assets")]
private static void PopQuickSearch()
{
// Open Search with only the "Asset" provider enabled.
SearchService.ShowContextual("asset");
}
您可以使用快捷键管理器将快捷键映射到键或键组合。