コード例 #1
0
 public DefaultGenerators(
     GlobalNamespaceProvider globalNamespace,
     IDocumentationLinker documentation,
     ExternalDocCommentsReader docReader,
     GeneratorConfig config,
     Logger logger)
 {
     Constant              = new ConstantCodeGenerator();
     Property              = new PropertyCodeGenerator(this, documentation, docReader);
     Enum                  = new EnumCodeGenerator(documentation, docReader);
     ExplicitOffsetField   = new FieldCodeGenerator(documentation, docReader, true);
     AutoLayoutField       = new FieldCodeGenerator(documentation, docReader, false);
     Struct                = new StructCodeGenerator(this, documentation, docReader);
     NativeStruct          = new NativeStructCodeGenerator(this, globalNamespace);
     NativeInvocation      = new NativeInvocationCodeGenerator(this, globalNamespace);
     Callable              = new CallableCodeGenerator(this, documentation, docReader, globalNamespace, logger);
     Method                = new MethodCodeGenerator(this);
     Function              = new FunctionCodeGenerator(this);
     Interface             = new InterfaceCodeGenerator(this, documentation, docReader, globalNamespace);
     Group                 = new GroupCodeGenerator(this, documentation, docReader);
     LocalInterop          = new LocalInteropCodeGenerator(this);
     InteropMethod         = new InteropMethodCodeGenerator();
     ShadowCallable        = new ShadowCallbackGenerator(this, globalNamespace);
     ReverseCallableProlog = new ReverseCallablePrologCodeGenerator(this, globalNamespace);
     Vtbl                  = new VtblGenerator(this, globalNamespace);
     Shadow                = new ShadowGenerator(this, globalNamespace);
     Marshalling           = new MarshallingRegistry(globalNamespace, logger);
     Config                = config;
 }
コード例 #2
0
 public InterfaceCodeGenerator(IGeneratorRegistry generators, IDocumentationLinker documentation,
                               ExternalDocCommentsReader docReader, GlobalNamespaceProvider globalNamespace, Logger logger)
     : base(documentation, docReader)
 {
     Generators           = generators;
     this.globalNamespace = globalNamespace;
     this.logger          = logger;
 }
コード例 #3
0
 public StructCodeGenerator(IGeneratorRegistry generators, IDocumentationLinker documentation, ExternalDocCommentsReader docReader)
     : base(documentation, docReader)
 {
     Generators = generators;
 }
コード例 #4
0
 public RoslynGenerator(Logger logger, GlobalNamespaceProvider globalNamespace, IDocumentationLinker documentation, ExternalDocCommentsReader docReader)
 {
     Logger = logger;
     this.globalNamespace = globalNamespace;
     Generators = new DefaultGenerators(globalNamespace, documentation, docReader, logger);
 }
コード例 #5
0
        private void GenerateCode(IDocumentationLinker docAggregator, CsAssembly asm, ExternalDocCommentsReader docCommentsReader)
        {
            var generator = new RoslynGenerator(Logger, GlobalNamespace, docAggregator, docCommentsReader, new GeneratorConfig {
                Platforms = PlatformDetectionType.Any
            });

            generator.Run(asm, _generatedPath, GeneratedCodeFolder);

            // Update check files for all assemblies
            var processTime = DateTime.Now;

            File.WriteAllText(Path.Combine(IntermediateOutputPath, asm.CheckFileName), "");
            File.SetLastWriteTime(Path.Combine(IntermediateOutputPath, asm.CheckFileName), processTime);
        }
コード例 #6
0
 public EnumCodeGenerator(IDocumentationLinker documentation, ExternalDocCommentsReader docReader) : base(documentation, docReader)
 {
 }
コード例 #7
0
 public FieldCodeGenerator(IDocumentationLinker documentation, ExternalDocCommentsReader docReader, bool explicitLayout)
     : base(documentation, docReader)
 {
     this.explicitLayout = explicitLayout;
 }
コード例 #8
0
 public GroupCodeGenerator(IGeneratorRegistry generators, IDocumentationLinker documentation, ExternalDocCommentsReader reader)
     : base(documentation, reader)
 {
     Generators = generators;
 }
コード例 #9
0
 public CallableCodeGenerator(IGeneratorRegistry generators, IDocumentationLinker documentation, ExternalDocCommentsReader docReader, GlobalNamespaceProvider globalNamespace)
     : base(documentation, docReader)
 {
     Generators           = generators;
     this.globalNamespace = globalNamespace;
 }
コード例 #10
0
 public RoslynGenerator(Logger logger, GlobalNamespaceProvider globalNamespace, IDocumentationLinker documentation, ExternalDocCommentsReader docReader, GeneratorConfig config)
 {
     this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
     generators  = new DefaultGenerators(globalNamespace, documentation, docReader, config, logger);
 }
コード例 #11
0
 protected MemberCodeGeneratorBase(IDocumentationLinker documentation, ExternalDocCommentsReader docReader)
 {
     docAggregator  = documentation;
     this.docReader = docReader;
 }
コード例 #12
0
        private void GenerateCode(IDocumentationLinker docAggregator, CsSolution solution, ExternalDocCommentsReader docCommentsReader)
        {
            var generator = new RoslynGenerator(Logger, GlobalNamespace, docAggregator, docCommentsReader);

            generator.Run(solution, _generatedPath, GeneratedCodeFolder, IncludeAssemblyNameFolder);

            // Update check files for all assemblies
            var processTime = DateTime.Now;

            foreach (CsAssembly assembly in solution.Assemblies)
            {
                File.WriteAllText(Path.Combine(IntermediateOutputPath, assembly.CheckFileName), "");
                File.SetLastWriteTime(Path.Combine(IntermediateOutputPath, assembly.CheckFileName), processTime);
            }
        }