Represents a query parsing error.
This class is only used in the context of SearchProviders, when performing a search. It allows a SearchProvider to report error during the parsing of the search query. Here is an example of a SearchProvider that uses a QueryEngine and reports parsing errors:
public IEnumerable<T> Search(SearchContext context, SearchProvider provider, IEnumerable<T> subset = null) { const bool useFastYielding = true; var query = m_QueryEngine.ParseQuery(context.searchQuery, useFastYielding); if (!query.valid) { if (reportError) context.AddSearchQueryErrors(query.errors.Select(e => new SearchQueryError(e, context, provider))); return Enumerable.Empty<T>(); } m_DoFuzzyMatch = query.HasToggle("fuzzy"); // Do not filter all the valid objects now. The filtering will be done when the objects are actually pulled. // Since the search can be done asynchronously, the state of the objects can change in between iterations. IEnumerable<T> validObjects = FilterValidObjectsOnPull(subset ?? m_Objects, useFastYielding); return query.Apply(validObjects, false); }
In the previous example, the function "Search" would be called by the provider's fetchItem.
In the Search window, the errors are shown when there is no result available.
.
Property | Description |
---|---|
context | The context in which this error was logged. |
index | Index where the error occurred. |
length | Length of the block that was being parsed. |
provider | Which search provider logged this error. |
reason | The reason for the error. |
type | The type of query error. |
Constructor | Description |
---|---|
SearchQueryError | Creates a new SearchQueryError. |