public override TextFormatInfo[] GetFormatDataForLine(int line, out TextChange change)
        {
            lock (this.lockObject)
            {
                if (this.parseEpisode == null)
                {
                    // We've never started a parse, so do it now.
                    StartNewParse(this.currentChange);
                }

                change = this.currentChange;

                if (this.data.Count > 0)
                {
                    int firstInRange = FindFirstInfoWhere(0, this.data.Count - 1, idx => this.data[idx].Range.End.Line >= line);
                    int firstBeyondRange = FindFirstInfoWhere(0, this.data.Count - 1, idx => this.data[idx].Range.Start.Line > line);

                    if (firstBeyondRange == -1)
                    {
                        firstBeyondRange = this.data.Count;
                    }

                    if (firstInRange == -1 || firstInRange > firstBeyondRange)
                    {
                        return null;
                    }

                    var result = new TextFormatInfo[firstBeyondRange - firstInRange];
                    this.data.CopyTo(firstInRange, result, 0, result.Length);
                    return result;
                }

                return null;
            }
        }