public async Task DynamicallyAddAnalyzer() { using (var workspace = new WorkCoordinatorWorkspace(SolutionCrawler)) { // create solution and wait for it to settle var solution = GetInitialSolutionInfo(workspace); workspace.OnSolutionAdded(solution); await WaitWaiterAsync(workspace.ExportProvider); // create solution crawler and add new analyzer provider dynamically var service = new SolutionCrawlerRegistrationService( SpecializedCollections.EmptyEnumerable<Lazy<IIncrementalAnalyzerProvider, IncrementalAnalyzerProviderMetadata>>(), GetListeners(workspace.ExportProvider)); service.Register(workspace); var provider = new AnalyzerProvider(new Analyzer()); service.AddAnalyzerProvider(provider, Metadata.Crawler); // wait for everything to settle await WaitAsync(service, workspace); service.Unregister(workspace); // check whether everything ran as expected Assert.Equal(10, provider.Analyzer.SyntaxDocumentIds.Count); Assert.Equal(10, provider.Analyzer.DocumentIds.Count); } }
public async Task DynamicallyAddAnalyzer() { using (var workspace = new WorkCoordinatorWorkspace(SolutionCrawler)) { // create solution and wait for it to settle var solution = GetInitialSolutionInfo_2Projects_10Documents(workspace); workspace.OnSolutionAdded(solution); await WaitWaiterAsync(workspace.ExportProvider); // create solution crawler and add new analyzer provider dynamically var service = new SolutionCrawlerRegistrationService( SpecializedCollections.EmptyEnumerable <Lazy <IIncrementalAnalyzerProvider, IncrementalAnalyzerProviderMetadata> >(), GetListenerProvider(workspace.ExportProvider)); service.Register(workspace); var provider = new AnalyzerProvider(new Analyzer()); service.AddAnalyzerProvider(provider, Metadata.Crawler); // wait for everything to settle await WaitAsync(service, workspace); service.Unregister(workspace); // check whether everything ran as expected Assert.Equal(10, provider.Analyzer.SyntaxDocumentIds.Count); Assert.Equal(10, provider.Analyzer.DocumentIds.Count); } }
private static Analyzer CreateAnalyzer(string analyzerName) { try { AnalyzerProvider provider = AnalyzerProvider.getProviderByName(analyzerName); return(provider.CreateAnalyzer()); } catch (Exception e) { throw new Exception("Could not create fulltext analyzer: " + analyzerName, e); } }
public override Stream <AnalyzerProvider> ListAvailableAnalyzers() { IEnumerable <AnalyzerProvider> providers = AnalyzerProvider.load(typeof(AnalyzerProvider)); return(StreamSupport.stream(providers.spliterator(), false)); }