private IEnumerable <ReportWithLine> ReportWhenExistExcessLineBetweenBraces(BracesPair bracesPair) { var openBraceLine = GetStartLine(bracesPair.Open); var closeBraceLine = GetStartLine(bracesPair.Close); var statements = GetStatements(bracesPair.Open.Parent); if (statements.Length == 0) { yield break; } var firstStatement = statements.First(); var lastStatement = statements.Last(); var firstStatementLine = GetStartLine(firstStatement); var lastStatementLine = GetEndLine(lastStatement); if (openBraceLine != firstStatementLine && openBraceLine + 1 != firstStatementLine && !IsComment(bracesPair.Open.Parent, openBraceLine + 1)) { yield return new ReportWithLine { Report = Report(bracesPair.Open, "После открывающей скобки не должно быть лишнего переноса строки"), Line = openBraceLine } } ; if (closeBraceLine != lastStatementLine && closeBraceLine - 1 != lastStatementLine && !IsComment(bracesPair.Open.Parent, closeBraceLine - 1)) { yield return new ReportWithLine { Report = Report(bracesPair.Close, "Перед закрывающей скобкой не должно быть лишнего переноса строки"), Line = closeBraceLine } } ; }
private ReportWithLine ReportWhenExistExcessLineBetweenDeclaration(BracesPair bracesPair) { var openBraceLine = GetStartLine(bracesPair.Open); var declarationLine = GetEndDeclaraionLine(bracesPair.Open.Parent); if (openBraceLine == declarationLine || declarationLine == -1) { return(null); } if (declarationLine + 1 != openBraceLine) { return new ReportWithLine { Report = Report(bracesPair.Open, "Между объявлением и открывающей скобкой не должно быть лишнего переноса строки"), Line = openBraceLine } } ; return(null); }
private ReportWithLine ReportWhenNotExistLineBetweenBlocks(BracesPair bracesPair) { var closeBraceLine = GetStartLine(bracesPair.Close); var nextSyntaxNode = GetNextNode(bracesPair.Open.Parent); if (nextSyntaxNode == null || nextSyntaxNode is StatementSyntax) { return(null); } var nextSyntaxNodeLine = GetStartLine(nextSyntaxNode); if (closeBraceLine + 1 == nextSyntaxNodeLine) { return new ReportWithLine { Line = closeBraceLine, Report = Report(bracesPair.Close, "После закрывающей скобки должен быть дополнительный перенос строки") } } ; return(null); }