public LineViewModel FilterLine(LineViewModel line) { if (line == null) return null; return _filterRegex == null || _filterRegex.IsMatch(line.Text) ? line : null; }
private LineViewModel ReadNewLine(byte lastLineCharacter, bool isLineUnfinished) { int length = _currentReadPosition - _currentLineIndex; if (lastLineCharacter == '\r') { length--; } // New line reached LineViewModel newLine = null; // Check if an unfinished line was being read if (_currentUnfinishedLine != null) { // Just update the current line with a new length _currentUnfinishedLine.Length = length; } else { newLine = new LineViewModel(_currentLineNumber++, _currentLineIndex, length, _fileName, _encoding); } if (isLineUnfinished) { _currentUnfinishedLine = newLine ?? _currentUnfinishedLine; } else { _currentLineIndex = _currentReadPosition + 1; _currentUnfinishedLine = null; } return newLine; }
private void InitializeReadParameters() { _currentLineNumber = 1; _currentLineIndex = 0; _currentReadPosition = 0; _previousReadLastByte = 0; _currentUnfinishedLine = null; }