Creating Custom Search Providers - McManning/BlueGraph GitHub Wiki

You may register one or more Search Providers with a Graph to control what nodes are available in the search dialog.

By default, a DefaultSearchProvider is included that includes all nodes found in the project through reflection and organizes/filters them based on their path, [Tags], and the [IncludeTags] rules of the Graph. But you can hook up your own search provider for special use cases - such as procedurally generating preconfigured nodes on the fly based on search parameters.

Creating a Search Provider

Inherit from BlueGraph.Editor.ISearchProvider and provide two methods:

  1. GetSearchResults to return an enumerable list of results to populate the search dialog in response to the incoming SearchFilters (things like the source port the user is dragging from and the list of allowed tags on the Graph)
  2. Instantiate to create a new instance of a Node once the user picks a SearchResult from the search dialog. The node will be persisted to the Graph asset and a view will be added to the canvas.

Adding a Search Provider to the Canvas

TODO - Example here (and in samples). CanvasView adds a search provider to m_Search but I don't think I'm exposing that functionality anywhere yet for someone to hook into.