As I didn't something in the R# API, I implemented it myself:
private IEnumerable<ITreeNode> FindAllNodes (ITreeNode startNode, Func<ITreeNode, TreeNodeActionType> predicate)
var currentNode = startNode;
currentNode = currentNode.FindNextNode (predicate);
if (currentNode == null)
yield return currentNode;
Does this functionality already exist in the R# API? If not, is my implementation OK in view of performance? Does it terminate with any given startNode?