private async Task<Document> MakePrivateAsync(Document document, PropertyDeclarationSyntax property, CancellationToken cancellationToken) { var newPropertyDeclaration = SyntaxFactory.PropertyDeclaration(property.Type, property.Identifier) .AddModifiers(SyntaxFactory.Token(SyntaxTriviaList.Empty, SyntaxKind.PrivateKeyword, SyntaxTriviaList.Create(SyntaxFactory.Space))) .WithLeadingTrivia(property.GetLeadingTrivia()) .WithAccessorList(property.AccessorList) ; var root = await document.GetSyntaxRootAsync(); var newRoot = root.ReplaceNode(property, newPropertyDeclaration); return document.WithSyntaxRoot(newRoot); }
private async Task<Document> IncorrectSigSuppDiagAsync(Document document, PropertyDeclarationSyntax declaration, CancellationToken c) { SyntaxGenerator generator = SyntaxGenerator.GetGenerator(document); var type = generator.IdentifierName("ImmutableArray<DiagnosticDescriptor>"); var getAccessorStatements = new SyntaxList<SyntaxNode>(); foreach (var accessor in declaration.AccessorList.Accessors) { if (accessor.IsKind(SyntaxKind.GetAccessorDeclaration)) { getAccessorStatements = accessor.Body.Statements; break; } } var newPropertyDecl = generator.PropertyDeclaration("SupportedDiagnostics", type, accessibility: Accessibility.Public, modifiers: DeclarationModifiers.Override, getAccessorStatements: getAccessorStatements).WithLeadingTrivia(declaration.GetLeadingTrivia()).WithTrailingTrivia(declaration.GetTrailingTrivia()); newPropertyDecl = newPropertyDecl.RemoveNode((newPropertyDecl as PropertyDeclarationSyntax).AccessorList.Accessors[1], 0); return await ReplaceNode(declaration, newPropertyDecl, document); }
private static async Task<Document> ReplaceWithExpressionBodiedMember(Document document, PropertyDeclarationSyntax declaration, CancellationToken cancellationToken) { SyntaxTriviaList leadingTrivia; var expression = GetExpression(declaration.AccessorList, out leadingTrivia); var declarationTrivia = declaration.GetLeadingTrivia(); declarationTrivia = declarationTrivia.AddRange(leadingTrivia); var newDeclaration = declaration .WithLeadingTrivia(declarationTrivia) .WithExpressionBody(SyntaxFactory.ArrowExpressionClause(expression)) .WithAccessorList(null) .WithSemicolonToken(GetSemicolon(declaration.AccessorList)) .WithAdditionalAnnotations(Formatter.Annotation); var root = await document.GetSyntaxRootAsync(cancellationToken); var newRoot = root.ReplaceNode(declaration, newDeclaration); return document.WithSyntaxRoot(newRoot); }