internal bool TryGetTokenization(int line, out LineTokenization tokenization) { if (line < 0) { throw new ArgumentOutOfRangeException("line", "Must be 0 or greater"); } Utilities.CheckNotNull(_map); if (_map[line].Tokens != null) { tokenization = _map[line]; return(true); } else { tokenization = default(LineTokenization); return(false); } }
/// <summary> /// Looks for the first cached tokenization preceding the given line. /// Returns the line we have a tokenization for or minLine - 1 if there is none. /// </summary> internal int IndexOfPreviousTokenization(int line, int minLine, out LineTokenization tokenization) { if (line < 0) { throw new ArgumentOutOfRangeException("line", "Must be 0 or greater"); } Utilities.CheckNotNull(_map); line--; while (line >= minLine) { if (_map[line].Tokens != null) { tokenization = _map[line]; return(line); } line--; } tokenization = default(LineTokenization); return(minLine - 1); }