public IEnumerable<IDocument> Execute(IReadOnlyList<IDocument> inputs, IExecutionContext context) { // Get syntax trees (supply path so that XML doc includes can be resolved) ConcurrentBag<SyntaxTree> syntaxTrees = new ConcurrentBag<SyntaxTree>(); Parallel.ForEach(inputs, input => { using (Stream stream = input.GetStream()) { SourceText sourceText = SourceText.From(stream); syntaxTrees.Add(CSharpSyntaxTree.ParseText(sourceText, path: input.String(Keys.SourceFilePath, string.Empty))); } }); // Create the compilation (have to supply an XmlReferenceResolver to handle include XML doc comments) MetadataReference mscorlib = MetadataReference.CreateFromFile(typeof(object).Assembly.Location); CSharpCompilation compilation = CSharpCompilation .Create("CodeAnalysisModule", syntaxTrees) .WithReferences(mscorlib) .WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, xmlReferenceResolver: new XmlFileResolver(context.InputFolder))); // Get and return the document tree AnalyzeSymbolVisitor visitor = new AnalyzeSymbolVisitor(context, _symbolPredicate, _writePath ?? (x => DefaultWritePath(x, _writePathPrefix)), _cssClasses, _docsForImplicitSymbols); visitor.Visit(compilation.Assembly.GlobalNamespace); return visitor.Finish(); }
public IEnumerable <IDocument> Execute(IReadOnlyList <IDocument> inputs, IExecutionContext context) { // Get syntax trees (supply path so that XML doc includes can be resolved) ConcurrentBag <SyntaxTree> syntaxTrees = new ConcurrentBag <SyntaxTree>(); Parallel.ForEach(inputs, input => { using (Stream stream = input.GetStream()) { SourceText sourceText = SourceText.From(stream); syntaxTrees.Add(CSharpSyntaxTree.ParseText(sourceText, path: input.String(Keys.SourceFilePath, string.Empty))); } }); // Create the compilation (have to supply an XmlReferenceResolver to handle include XML doc comments) MetadataReference mscorlib = MetadataReference.CreateFromFile(typeof(object).Assembly.Location); CSharpCompilation compilation = CSharpCompilation .Create("CodeAnalysisModule", syntaxTrees) .WithReferences(mscorlib) .WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, xmlReferenceResolver: new XmlFileResolver(context.InputFolder))); // Get and return the document tree AnalyzeSymbolVisitor visitor = new AnalyzeSymbolVisitor(context, _symbolPredicate, _writePath ?? (x => DefaultWritePath(x, _writePathPrefix)), _cssClasses, _docsForImplicitSymbols); visitor.Visit(compilation.Assembly.GlobalNamespace); return(visitor.Finish()); }
public IEnumerable<IDocument> Execute(IReadOnlyList<IDocument> inputs, IExecutionContext context) { // Get syntax trees ConcurrentBag<SyntaxTree> syntaxTrees = new ConcurrentBag<SyntaxTree>(); Parallel.ForEach(inputs, input => { using (Stream stream = input.GetStream()) { SourceText sourceText = SourceText.From(stream); syntaxTrees.Add(CSharpSyntaxTree.ParseText(sourceText)); } }); // Create the compilation MetadataReference mscorlib = MetadataReference.CreateFromFile(typeof(object).Assembly.Location); CSharpCompilation compilation = CSharpCompilation.Create("CodeAnalysisModule", syntaxTrees).WithReferences(mscorlib); // Get and return the document tree AnalyzeSymbolVisitor visitor = new AnalyzeSymbolVisitor(context, _symbolPredicate, _writePath ?? (x => DefaultWritePath(x, _writePathPrefix)), _cssClasses); visitor.Visit(compilation.Assembly.GlobalNamespace); return visitor.Finish(); }
public SymbolDocumentValues(IEnumerable<ISymbol> symbols, AnalyzeSymbolVisitor visitor) { _symbols = symbols ?? Array.Empty<ISymbol>(); _visitor = visitor; }
public SymbolDocumentValue(ISymbol symbol, AnalyzeSymbolVisitor visitor) { _symbol = symbol; _visitor = visitor; }
public SymbolDocumentValue(ISymbol symbol, AnalyzeSymbolVisitor visitor) { _symbol = symbol; _visitor = visitor; }
public SymbolDocumentValues(IEnumerable <ISymbol> symbols, AnalyzeSymbolVisitor visitor) { _symbols = symbols ?? Array.Empty <ISymbol>(); _visitor = visitor; }