public static bool TryCreate(SyntaxList <TNode> list, TextSpan span, out SyntaxListSelection <TNode> selectedNodes) { if (list.Any()) { IndexPair indexes = GetIndexes(list, span); if (indexes.IsValid) { selectedNodes = new SyntaxListSelection <TNode>(list, span, indexes.StartIndex, indexes.EndIndex); return(true); } } selectedNodes = null; return(false); }
public static bool TryCreate(SyntaxList <TNode> list, TextSpan span, out SyntaxListSelection <TNode> selection) { selection = null; if (!list.Any()) { return(false); } if (span.IsEmpty) { return(false); } (int startIndex, int endIndex) = GetIndexes(list, span); if (startIndex == -1) { return(false); } selection = new SyntaxListSelection <TNode>(list, span, startIndex, endIndex); return(true); }
internal static bool TryCreate(SyntaxList <TNode> list, TextSpan span, int minCount, int maxCount, out SyntaxListSelection <TNode> selection) { selection = Create(list, span, minCount, maxCount); return(selection != null); }
/// <summary> /// Creates a new <see cref="SyntaxListSelection{TNode}"/> based on the specified list and span. /// </summary> /// <param name="list"></param> /// <param name="span"></param> /// <param name="selection"></param> /// <returns>True if the specified span contains at least one node; otherwise, false.</returns> public static bool TryCreate(SyntaxList <TNode> list, TextSpan span, out SyntaxListSelection <TNode> selection) { selection = Create(list, span, 1, int.MaxValue); return(selection != null); }
internal EnumeratorImpl(SyntaxListSelection <TNode> selection) { _en = new Enumerator(selection); }
internal Enumerator(SyntaxListSelection <TNode> selection) { _selection = selection; _index = -1; }