private static SourcePosition FindDescendantPositionToExchange(StatementGrammarNode movedNode) { var nodeToExchange = movedNode.ParentNode .GetPathFilterDescendants(n => n != movedNode && NodeFilters.BreakAtNestedQueryBlock(n), movedNode.Id) .FirstOrDefault(); return(CreateNodePosition(movedNode, nodeToExchange)); }
public static IEnumerable <INode> Walk(IDirectory directory, NodeType nodeType) { var accept = NodeFilters.ByNodeType(nodeType); foreach (var childNode in directory.GetChildren()) { if (accept(childNode)) { yield return(childNode); } if (childNode is IDirectory) { foreach (var childChildNode in Walk(((IDirectory)childNode), nodeType)) { yield return(childChildNode); } } } }
public virtual IEnumerable <string> GetChildNames(NodeType nodeType, Predicate <string> acceptName) { return(GetChildNamesUsingNodes(nodeType, NodeFilters.ByNodeName(acceptName))); }