public override ClassDeclarationSyntax Apply(ClassDeclarationSyntax node, INamedTypeSymbol symbol, CancellationToken cancellationToken) { return(node.AddMembers( F.PropertyDeclaration( F.ParseTypeName(node.Identifier.Text), name ).WithAccessorList( F.AccessorList().AddAccessors(F.AccessorDeclaration(K.GetAccessorDeclaration)) ).WithModifiers( F.TokenList(F.Token(K.PublicKeyword), F.Token(K.StaticKeyword)) ).WithInitializer( F.EqualsValueClause(F.ObjectCreationExpression(F.ParseTypeName(node.Identifier.Text))) ).NormalizeWhitespace() )); }
string Render(Docs docs) { Property property = new Property( "myProp", new TypeReference(primitive: PrimitiveType.String), false, false, false, docs ); PropertyDocCommentGenerator generator = new PropertyDocCommentGenerator(property); SyntaxTrivia docComment = generator.CreateDocComment(); SyntaxTree tree = SF.SyntaxTree( SF.PropertyDeclaration(SF.ParseTypeName("string"), "MyProp") .WithLeadingTrivia(generator.CreateDocComment()) .NormalizeWhitespace(elasticTrivia: true) ); return(tree.ToString()); }
public PropertyDeclarationSyntax Build() => SF.PropertyDeclaration(ParseType(_type), _name) .AddModifiers(_modifiers.Build().ToArray()) .WithAccessorList(SF.AccessorList(SF.List(_accessors.Select(a => a.Build()))));