internal static CompilationUnitSyntax AddMethodTo( CompilationUnitSyntax destination, IMethodSymbol method, CodeGenerationOptions options, IList<bool> availableIndices) { var declaration = GenerateMethodDeclaration(method, CodeGenerationDestination.CompilationUnit, options); var members = Insert(destination.Members, declaration, options, availableIndices, after: LastMethod); return destination.WithMembers(members.ToSyntaxList()); }
public static CompilationUnitSyntax AddNamedTypeTo( ICodeGenerationService service, CompilationUnitSyntax destination, INamedTypeSymbol namedType, CodeGenerationOptions options, IList<bool> availableIndices) { var declaration = GenerateNamedTypeDeclaration(service, namedType, CodeGenerationDestination.CompilationUnit, options); var members = Insert(destination.Members, declaration, options, availableIndices); return destination.WithMembers(members); }
internal static CompilationUnitSyntax AddPropertyTo( CompilationUnitSyntax destination, IPropertySymbol property, CodeGenerationOptions options, IList<bool> availableIndices) { var declaration = GeneratePropertyOrIndexer(property, CodeGenerationDestination.CompilationUnit, options); var members = Insert(destination.Members, declaration, options, availableIndices, after: LastPropertyOrField, before: FirstMember); return destination.WithMembers(members); }
internal static CompilationUnitSyntax AddFieldTo( CompilationUnitSyntax destination, IFieldSymbol field, CodeGenerationOptions options, IList<bool> availableIndices) { var declaration = GenerateFieldDeclaration(field, CodeGenerationDestination.CompilationUnit, options); // Place the field after the last field or const, or at the start of the type // declaration. var members = Insert(destination.Members, declaration, options, availableIndices, after: m => LastField(m, declaration), before: FirstMember); return destination.WithMembers(members.ToSyntaxList()); }
internal static CompilationUnitSyntax AddEventTo( CompilationUnitSyntax destination, IEventSymbol @event, CodeGenerationOptions options, IList<bool> availableIndices) { var declaration = GenerateEventDeclaration(@event, CodeGenerationDestination.CompilationUnit, options); // Place the event depending on its shape. Field style events go with fields, property // style events go with properties. If there var members = Insert(destination.Members, declaration, options, availableIndices, after: list => AfterMember(list, declaration), before: list => BeforeMember(list, declaration)); return destination.WithMembers(members.ToSyntaxList()); }
public static CompilationUnitSyntax AddNamespaceTo( ICodeGenerationService service, CompilationUnitSyntax destination, INamespaceSymbol @namespace, CodeGenerationOptions options, IList<bool> availableIndices) { var declaration = GenerateNamespaceDeclaration(service, @namespace, options); if (!(declaration is NamespaceDeclarationSyntax)) { throw new ArgumentException(CSharpWorkspaceResources.NamespaceCanNotBeAddedIn); } var members = Insert(destination.Members, (NamespaceDeclarationSyntax)declaration, options, availableIndices); return destination.WithMembers(members); }