public bool TryCreateNavigateToItemProvider(IServiceProvider serviceProvider, out INavigateToItemProvider provider) { var workspace = PrimaryWorkspace.Workspace; if (workspace == null) { // when Roslyn is not loaded, workspace is null, and so we don't want to // participate in this Navigate To session. See bug 756800 provider = null; return false; } provider = new NavigateToItemProvider(workspace, _glyphService, _asyncListener, _optionsServices); return true; }
public bool TryCreateNavigateToItemProvider(IServiceProvider serviceProvider, out INavigateToItemProvider provider) { var workspace = _primaryWorkspace.Workspace; if (workspace == null) { // when Roslyn is not loaded, workspace is null, and so we don't want to // participate in this Navigate To session. See bug 756800 provider = null; return(false); } provider = new NavigateToItemProvider(workspace, _asyncListener); return(true); }
public async Task NavigateToGeneratedFiles() { using (var workspace = await TestWorkspace.CreateAsync(@" <Workspace> <Project Language=""C#"" CommonReferences=""true""> <Document FilePath=""File1.cs""> namespace N { public partial class C { public void VisibleMethod() { } } } </Document> <Document FilePath=""File1.g.cs""> namespace N { public partial class C { public void VisibleMethod_Generated() { } } } </Document> </Project> </Workspace> ", exportProvider: s_exportProvider)) { var aggregateListener = AggregateAsynchronousOperationListener.CreateEmptyListener(); _provider = new NavigateToItemProvider( workspace, _glyphServiceMock.Object, aggregateListener, workspace.ExportProvider.GetExportedValues<Lazy<INavigateToOptionsService, VisualStudioVersionMetadata>>()); _aggregator = new NavigateToTestAggregator(_provider); var items = await _aggregator.GetItemsAsync("VisibleMethod"); var expectedItems = new List<NavigateToItem>() { new NavigateToItem("VisibleMethod", NavigateToItemKind.Method, "csharp", null, null, MatchKind.Exact, true, null), new NavigateToItem("VisibleMethod_Generated", NavigateToItemKind.Method, "csharp", null, null, MatchKind.Prefix, true, null) }; // The pattern matcher should match 'VisibleMethod' to both 'VisibleMethod' and 'VisibleMethod_Not', except that // the _Not method is declared in a generated file. VerifyNavigateToResultItems(expectedItems, items); } }