예제 #1
0
        protected override TDeclarationNode AddNamespace <TDeclarationNode>(TDeclarationNode destination, INamespaceSymbol @namespace, CodeGenerationOptions options, IList <bool> availableIndices, CancellationToken cancellationToken)
        {
            CheckDeclarationNode <CompilationUnitSyntax, NamespaceDeclarationSyntax>(destination);

            if (destination is CompilationUnitSyntax)
            {
                return(Cast <TDeclarationNode>(NamespaceGenerator.AddNamespaceTo(this, Cast <CompilationUnitSyntax>(destination), @namespace, options, availableIndices, cancellationToken)));
            }
            else
            {
                return(Cast <TDeclarationNode>(NamespaceGenerator.AddNamespaceTo(this, Cast <NamespaceDeclarationSyntax>(destination), @namespace, options, availableIndices, cancellationToken)));
            }
        }
예제 #2
0
        protected override TDeclarationNode AddNamespace <TDeclarationNode>(TDeclarationNode destination, INamespaceSymbol @namespace, CSharpCodeGenerationContextInfo info, IList <bool>?availableIndices, CancellationToken cancellationToken)
        {
            CheckDeclarationNode <CompilationUnitSyntax, BaseNamespaceDeclarationSyntax>(destination);

            if (destination is CompilationUnitSyntax compilationUnit)
            {
                return(Cast <TDeclarationNode>(NamespaceGenerator.AddNamespaceTo(this, compilationUnit, @namespace, info, availableIndices, cancellationToken)));
            }
            else
            {
                return(Cast <TDeclarationNode>(NamespaceGenerator.AddNamespaceTo(this, Cast <BaseNamespaceDeclarationSyntax>(destination), @namespace, info, availableIndices, cancellationToken)));
            }
        }
예제 #3
0
        public override TDeclarationNode UpdateDeclarationMembers <TDeclarationNode>(TDeclarationNode declaration, IList <ISymbol> newMembers, CodeGenerationOptions options = null, CancellationToken cancellationToken = default)
        {
            if (declaration is MemberDeclarationSyntax memberDeclaration)
            {
                return(Cast <TDeclarationNode>(NamedTypeGenerator.UpdateNamedTypeDeclaration(this, memberDeclaration, newMembers, options, cancellationToken)));
            }

            if (declaration is CSharpSyntaxNode syntaxNode)
            {
                switch (syntaxNode.Kind())
                {
                case SyntaxKind.CompilationUnit:
                case SyntaxKind.NamespaceDeclaration:
                    return(Cast <TDeclarationNode>(NamespaceGenerator.UpdateCompilationUnitOrNamespaceDeclaration(this, syntaxNode, newMembers, options, cancellationToken)));
                }
            }

            return(declaration);
        }
예제 #4
0
 public override SyntaxNode CreateNamespaceDeclaration(
     INamespaceSymbol @namespace, CodeGenerationDestination destination, CodeGenerationOptions options, CancellationToken cancellationToken)
 {
     return(NamespaceGenerator.GenerateNamespaceDeclaration(this, @namespace, options, cancellationToken));
 }