private void SyntaxNodeConstructorLengthAnalysis(SyntaxNodeAnalysisContext context) { var node = (ConstructorDeclarationSyntax)context.Node; var paramWithTokens = node.ParameterList.ChildNodesAndTokens().AggregateParamsWithTokens(); if (paramWithTokens.Count() < 4) { return; } var areParamsTrailingEndOfTheLine = true; foreach (var elem in paramWithTokens) { if (_triviaHelper.IsParamIsAfterNewLine(elem)) { areParamsTrailingEndOfTheLine = false; break; } } if (!areParamsTrailingEndOfTheLine) { context.ReportDiagnostic(Diagnostic.Create(DiagnosticDescriptions.Descriptions["ConstructorParamLength"], node.GetLocation())); } }
private async Task <Document> SeperateByNewLinesAsync(Document document, ConstructorDeclarationSyntax declaration, CancellationToken c) { var editor = await DocumentEditor.CreateAsync(document, c); var leadingTrivia = _triviaHelper.GenerateLeadingTriviaForNewLine(declaration); var paramsWithTokens = declaration.ParameterList.ChildNodesAndTokens().AggregateParamsWithTokens(); foreach (var elem in paramsWithTokens) { var param = elem.Parameter; if (_triviaHelper.IsParamIsAfterNewLine(elem)) { editor.ReplaceNode(param, param.WithLeadingTrivia(leadingTrivia)); } } return(editor.GetChangedDocument()); }