public void Add(CSharpFileModel fileModel, String @namespace, SyntaxNode node) { lock (namespaceGeneratorMap) { GetOrCreatGenerator(@namespace).Add(fileModel, node); } }
public void ProjectLoaded(Task <Project> task) { project = task.Result; this.assemblyPackageName = CSharpToD.GetAssemblyPackageName(project.AssemblyName); if (config.outputType.HasValue) { this.outputType = config.outputType.Value; } else { throw new NotImplementedException(); } Console.WriteLine("[{0}] Loaded project (AssemblyPackage='{1}', ProjectFile='{2}')", Thread.CurrentThread.ManagedThreadId, assemblyPackageName, fileFullPath); // // Check Source Defines // if (CSharpToD.config.sourceDefines.Count > 0) { CSharpParseOptions parseOptions = (CSharpParseOptions)project.ParseOptions; var preprocessorSymbolNames = parseOptions.PreprocessorSymbolNames; List <string> newSymbolNames = null; foreach (string configured in CSharpToD.config.sourceDefines) { if (!System.Linq.Enumerable.Contains(preprocessorSymbolNames, configured)) { if (newSymbolNames == null) { newSymbolNames = new List <string>(); newSymbolNames.AddRange(preprocessorSymbolNames); } Console.WriteLine("[{0}] [DEBUG] Adding SourceDefine '{1}'", Thread.CurrentThread.ManagedThreadId, configured); newSymbolNames.Add(configured); } } if (newSymbolNames != null) { project = project.WithParseOptions(parseOptions.WithPreprocessorSymbols(newSymbolNames.ToArray())); } } // // Add Include Files // foreach (IncludeSource includeSource in config.includeSources) { GetOrCreatGenerator(includeSource.@namespace).AddIncludeSource(includeSource.filename); } // // Start tasks to process the project source files // this.filesToProcess = (uint)System.Linq.Enumerable.Count(project.Documents); foreach (Document document in project.Documents) { if (CSharpToD.printSourceFiles) { Console.WriteLine("Source File: {0}", document.FilePath); } var fileModel = new CSharpFileModel(this, document); //Console.WriteLine("[{0}] Starting syntax loader for '{1}'...", // Thread.CurrentThread.ManagedThreadId, relativePathName); TaskManager.AddTask(document.GetSyntaxTreeAsync().ContinueWith(fileModel.SyntaxTreeLoaded)); } }
public NamespaceMultiplexVisitor(CSharpFileModel csharpFileModel) { this.csharpFileModel = csharpFileModel; }