private static void AnalyzeArrowExpressionClause(SyntaxNodeAnalysisContext context) { var arrowExpressionClause = (ArrowExpressionClauseSyntax)context.Node; SyntaxToken arrowToken = arrowExpressionClause.ArrowToken; NewLinePosition newLinePosition = context.GetArrowTokenNewLinePosition(); if (newLinePosition == NewLinePosition.None) { return; } FormattingSuggestion suggestion = FormattingAnalysis.AnalyzeNewLineBeforeOrAfter(arrowToken, arrowExpressionClause.Expression, newLinePosition); if (suggestion == FormattingSuggestion.AddNewLineBefore) { DiagnosticHelpers.ReportDiagnostic( context, DiagnosticRules.PlaceNewLineAfterOrBeforeArrowToken, arrowToken.GetLocation(), "before"); } else if (suggestion == FormattingSuggestion.AddNewLineAfter) { DiagnosticHelpers.ReportDiagnostic( context, DiagnosticRules.PlaceNewLineAfterOrBeforeArrowToken, arrowToken.GetLocation(), properties: DiagnosticProperties.AnalyzerOption_Invert, "after"); } }