Exemple #1
0
        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);
        }