Microsoft.R.Core.AST.AstNode.NodeFromRange C# (CSharp) Method

NodeFromRange() public method

Finds deepest node that fully encloses given range
public NodeFromRange ( ITextRange range, bool inclusiveEnd = false ) : IAstNode
range ITextRange
inclusiveEnd bool
return IAstNode
        public virtual IAstNode NodeFromRange(ITextRange range, bool inclusiveEnd = false) {
            IAstNode node = null;

            if (TextRange.Contains(this, range, inclusiveEnd)) {
                node = this;

                for (int i = 0; i < this.Children.Count; i++) {
                    var child = Children[i];

                    if (range.End < child.Start)
                        break;

                    if (TextRange.Contains(child, range, inclusiveEnd)) {
                        node = (child.Children.Count > 0)
                            ? child.NodeFromRange(range, inclusiveEnd)
                            : child;

                        break;
                    }
                }
            }

            return node;
        }