context aware is something not exactly easy to determine. UE4 has that in blueprint and I think they filter nodes which you can connect to other nodes nearby, or nodes used more frequently, or some machine learning statistics about the most likely next node. It’s convoluted and unpredictable imo. (except when the nodebrowser is called while making a link from a pin, then it will only show nodes that you can connect to that pin, that’s useful)
there are libraries for fuzzy search which I’d also combine with SimMetrics string distance algorithms. Interesting thing about that you can set a threshold parameter when your search and also could match mistyped text.
If there are no libraries I would go with this order if there are not enough results in any pass:
- Match whole pattern
- Contains whole pattern
- Split contains pattern segments at whitespaces
- String distance with pattern with adaptive threshold
- Split pattern into ever decreasing charactercount segments and “contains” them
done in parallel to not block UI because the last couple can be costy if not used with some clever hashing or caching (like creating and managing a database of matches with the contained segments as keys).
on the other hand imo there are more important problems with the UI than the context aware or fuzzy search node browsers (like more conventional windowing with multiple documents opened at the same time) but vvvv + conventional is just wishful thinking.