Task <RichGenerationResult> IRichCodeGenerator.GenerateRichAsync(TransformationContext context, IProgress <Diagnostic> progress, CancellationToken cancellationToken) { var richGenerationContext = new RichGenerationContext(context, progress, cancellationToken); Generate(richGenerationContext); var result = richGenerationContext.CreateResult(); return(Task.FromResult(result)); }
protected override void Generate(RichGenerationContext context) { if (!(context.TransformationContext.ProcessingNode is ClassDeclarationSyntax classDeclaration)) { return; } var partial = SyntaxFactory.ClassDeclaration(classDeclaration.Identifier); var namespaceSyntax = SyntaxFactory.NamespaceDeclaration( SyntaxFactory.ParseName(Namespace)) .AddMembers(partial); context.AddMember(namespaceSyntax); }
protected override void Generate(RichGenerationContext context) { var attribute = SyntaxFactory.Attribute(SyntaxFactory.ParseName(Attribute)); context.AddAttribute(attribute); }
protected override void Generate(RichGenerationContext context) { var externAlias = SyntaxFactory.ExternAliasDirective(Extern); context.AddExtern(externAlias); }
protected abstract void Generate(RichGenerationContext context);
protected override void Generate(RichGenerationContext context) { var usingSyntax = SyntaxFactory.UsingDirective(SyntaxFactory.ParseName(Using)); context.AddUsing(usingSyntax); }