public virtual IEnumerable <string> Search(ISearchContext context, string query, Action <IEnumerable <string> > asyncItemsReceived) { if (!searchSessions.ContainsKey(context.guid)) { return new string[] {} } ; var searchSession = searchSessions[context.guid]; if (asyncItemsReceived != null) { searchSession.onAsyncItemsReceived = asyncItemsReceived; } if (context.requiredTypeNames != null && context.requiredTypeNames.Any()) { searchSession.context.filterType = Utils.GetTypeFromName(context.requiredTypeNames.First()); } else { searchSession.context.filterType = null; } searchSession.context.searchText = query; searchSession.context.options |= SearchFlags.Packages; var items = SearchService.GetItems(searchSession.context); return(items.Select(item => ToPath(item))); }
protected override IEnumerable <SearchItem> FetchItems() { yield return(SearchItem.none); foreach (var item in SearchService.GetItems(context)) { if (filterCallback != null && !filterCallback(item)) { continue; } yield return(item); } }
public virtual IEnumerable <string> Search(ISearchContext context, string query, Action <IEnumerable <string> > asyncItemsReceived) { if (!searchSessions.ContainsKey(context.guid)) { return new string[] {} } ; var searchSession = searchSessions[context.guid]; var projectSearchContext = (ProjectSearchContext)context; if (asyncItemsReceived != null) { searchSession.onAsyncItemsReceived = asyncItemsReceived; } if (context.requiredTypeNames != null && context.requiredTypeNames.Any()) { searchSession.context.filterType = Utils.GetTypeFromName(context.requiredTypeNames.First()); } else { searchSession.context.filterType = null; } searchSession.context.searchText = query; searchSession.context.options &= ~SearchFlags.Packages; if (projectSearchContext.searchFilter != null) { searchSession.context.userData = projectSearchContext.searchFilter; if (projectSearchContext.searchFilter.searchArea == SearchFilter.SearchArea.InAssetsOnly) { searchSession.context.searchText = $"a:assets {query}"; } else if (projectSearchContext.searchFilter.searchArea == SearchFilter.SearchArea.InPackagesOnly) { searchSession.context.options |= SearchFlags.Packages; searchSession.context.searchText = $"a:packages {query}"; } else if (projectSearchContext.searchFilter.searchArea == SearchFilter.SearchArea.AllAssets) { searchSession.context.options |= SearchFlags.Packages; } } var items = SearchService.GetItems(searchSession.context); return(items.Select(item => ToPath(item))); }
protected override IEnumerable <SearchItem> FetchItems() { if (!viewState.excludeClearItem) { yield return(SearchItem.clear); } foreach (var item in SearchService.GetItems(context)) { if (filterCallback != null && !filterCallback(item)) { continue; } yield return(item); } }
public override void BeginSearch(ISearchContext context, string query) { if (!searchSessions.ContainsKey(context.guid)) { return; } base.BeginSearch(context, query); var searchSession = searchSessions[context.guid]; if (searchSession.context.searchText == query) { return; } searchSession.context.searchText = query; if (context.requiredTypeNames != null && context.requiredTypeNames.Any()) { searchSession.context.filterType = Utils.GetTypeFromName(context.requiredTypeNames.First()); } else { searchSession.context.filterType = typeof(GameObject); } if (!m_SearchItemsBySession.ContainsKey(context.guid)) { m_SearchItemsBySession.Add(context.guid, new HashSet <int>()); } var searchItemsSet = m_SearchItemsBySession[context.guid]; searchItemsSet.Clear(); foreach (var id in SearchService.GetItems(searchSession.context, SearchFlags.Synchronous).Select(item => Convert.ToInt32(item.id))) { searchItemsSet.Add(id); } }
private void RefreshResults() { SetItems(SearchService.GetItems(m_SearchContext)); }