@@ -270,18 +270,32 @@ private static void AnalyzeArgumentList(SyntaxNodeAnalysisContext context, BaseA
270270 return ;
271271 }
272272
273- var previousLine = argumentListSyntax . Arguments [ 0 ] . GetLineSpan ( ) . EndLinePosition . Line ;
273+ var previousArgumentLine = argumentListSyntax . Arguments [ 0 ] . GetLineSpan ( ) . EndLinePosition . Line ;
274274 for ( int i = 1 ; i < argumentListSyntax . Arguments . Count ; i ++ )
275275 {
276276 var currentArgument = argumentListSyntax . Arguments [ i ] ;
277- var lineSpan = currentArgument . GetLineSpan ( ) ;
278- var currentLine = lineSpan . StartLinePosition . Line ;
279- if ( currentLine - previousLine > 1 )
277+ int currentArgumentStartLine ;
278+ int currentArgumentEndLine ;
279+
280+ if ( currentArgument . HasLeadingTrivia && currentArgument . GetLeadingTrivia ( ) . All ( trivia => IsValidTrivia ( trivia ) ) )
281+ {
282+ var lineSpan = currentArgument . SyntaxTree . GetLineSpan ( currentArgument . FullSpan ) ;
283+ currentArgumentStartLine = lineSpan . StartLinePosition . Line ;
284+ currentArgumentEndLine = lineSpan . EndLinePosition . Line ;
285+ }
286+ else
287+ {
288+ var lineSpan = currentArgument . GetLineSpan ( ) ;
289+ currentArgumentStartLine = lineSpan . StartLinePosition . Line ;
290+ currentArgumentEndLine = lineSpan . EndLinePosition . Line ;
291+ }
292+
293+ if ( currentArgumentStartLine - previousArgumentLine > 1 )
280294 {
281295 context . ReportDiagnostic ( Diagnostic . Create ( Descriptor , currentArgument . GetLocation ( ) ) ) ;
282296 }
283297
284- previousLine = lineSpan . EndLinePosition . Line ;
298+ previousArgumentLine = currentArgumentEndLine ;
285299 }
286300 }
287301
@@ -327,6 +341,7 @@ private static bool IsValidTrivia(SyntaxTrivia trivia)
327341 case SyntaxKind . EndIfDirectiveTrivia :
328342 case SyntaxKind . DisabledTextTrivia :
329343 case SyntaxKind . WhitespaceTrivia :
344+ case SyntaxKind . PragmaWarningDirectiveTrivia :
330345 return true ;
331346
332347 default :
0 commit comments