public override void VisitEndBlockStatement(EndBlockStatementSyntax node) { if (Options.IgnoreBlockBoundary) { TextSpan span = node.Span; TextLine line = Lines.GetLineFromPosition(span.Start); if (line.IsEmptyOrWhiteSpace(TextSpan.FromBounds(line.Start, span.Start))) { if (Options.IncludeComments) { if (line.IsEmptyOrWhiteSpace(TextSpan.FromBounds(span.End, line.End))) { BlockBoundaryLineCount += Lines.GetLineCount(span); } } else if (AnalyzeTrailingTrivia(node.GetTrailingTrivia())) { BlockBoundaryLineCount += Lines.GetLineCount(span); } } } base.VisitEndBlockStatement(node);
public override void VisitEndBlockStatement(EndBlockStatementSyntax node) { if (Options.IgnoreBlockBoundary) { TextSpan span = node.Span; TextLine line = Lines.GetLineFromPosition(span.Start); if (line.IsEmptyOrWhiteSpace(TextSpan.FromBounds(line.Start, span.Start))) { if (Options.IncludeComments) { if (line.IsEmptyOrWhiteSpace(TextSpan.FromBounds(span.End, line.End))) { BlockBoundaryLineCount += Lines.GetLineCount(span); } } else if (AnalyzeTrailingTrivia(node.GetTrailingTrivia())) { BlockBoundaryLineCount += Lines.GetLineCount(span); } } } base.VisitEndBlockStatement(node); bool AnalyzeTrailingTrivia(in SyntaxTriviaList trailingTrivia) { SyntaxTriviaList.Enumerator en = trailingTrivia.GetEnumerator(); while (en.MoveNext()) { switch (en.Current.Kind()) { case SyntaxKind.EndOfLineTrivia: case SyntaxKind.CommentTrivia: { return(true); } case SyntaxKind.WhitespaceTrivia: { break; } default: { return(false); } } } return(false); } }