private void ProcessReadLine(string readLine, LogicalLinesHistoryQueue logicalLinesHistoryQueue) { var isLogicalContinuation = !string.IsNullOrEmpty(Configs.LogicalLineMarker) && ( readLine.Length < Configs.LogicalLineMarker.Length || readLine.Substring(0, Configs.LogicalLineMarker.Length) .Contains(Configs.LogicalLineMarker, Configs.ComparisonOptions) ); if (!isLogicalContinuation) // a new line begins, flush memory { ++_lineNumber; FlushLogicalLine(logicalLinesHistoryQueue); } var line = new Line(readLine, isLogicalContinuation, _lineNumber); line.CheckFilters(Configs.FiltersShow, Configs.FiltersHide, Configs.FiltersHighlight); AddLineNumberIfApplicable(line); TruncateIfApplicable(line); _logicalLine.Add(line); }