public SniffInfo Sniff(string nativeFilePath, Language suggestedSourceLanguage, Codepage suggestedCodepage, INativeTextLocationMessageReporter messageReporter, ISettingsGroup settingsGroup) { var lineValidationSession = _lineParser.StartLineValidationSession(); using (var extendedStreamReader = _fileHelper.GetExtendedStreamReader(nativeFilePath)) { string currentLine; while ((currentLine = extendedStreamReader.ReadLineWithEofLine()) != null) { var isValidLine = lineValidationSession.IsValid(currentLine); if (isValidLine) { continue; } var message = string.Format( PoFileTypeResources.Sniffer_Unexpected_Line, extendedStreamReader.CurrentLineNumber + ": " + currentLine, lineValidationSession.NextExpectedLineDescription); messageReporter.ReportMessage(this, nativeFilePath, ErrorLevel.Error, message, extendedStreamReader.CurrentLineNumber + ": " + currentLine); return(new SniffInfo { IsSupported = false }); } } return(new SniffInfo { IsSupported = true }); }