public async Task NavigateToItemAsync(Document document, NavigationBarItem item, ITextView view, CancellationToken cancellationToken) { if (item.Spans.Length <= 0) { return; } await _threadingContext.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); var workspace = document.Project.Solution.Workspace; var navigationService = VSTypeScriptDocumentNavigationServiceWrapper.Create(workspace); navigationService.TryNavigateToPosition(workspace, document.Id, item.Spans[0].Start, virtualSpace: 0, options: null, cancellationToken: cancellationToken); }
public async Task <bool> TryNavigateToItemAsync( Document document, NavigationBarItem item, ITextView view, ITextSnapshot textSnapshot, CancellationToken cancellationToken) { if (item.NavigationTrackingSpan != null) { var span = item.NavigationTrackingSpan.GetSpan(textSnapshot); await _threadingContext.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); var workspace = document.Project.Solution.Workspace; var navigationService = VSTypeScriptDocumentNavigationServiceWrapper.Create(workspace); navigationService.TryNavigateToPosition(workspace, document.Id, span.Start, virtualSpace: 0, options: null, cancellationToken: cancellationToken); } return(true); }
public async Task <bool> TryNavigateToItemAsync( Document document, NavigationBarItem item, ITextView view, ITextVersion textVersion, CancellationToken cancellationToken) { // Spans.First() is safe here as we filtered out any items with no spans above in ConvertItems. var navigationSpan = item.GetCurrentItemSpan(textVersion, item.Spans.First()); await _threadingContext.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); var workspace = document.Project.Solution.Workspace; var navigationService = VSTypeScriptDocumentNavigationServiceWrapper.Create(workspace); navigationService.TryNavigateToPosition( workspace, document.Id, navigationSpan.Start, virtualSpace: 0, options: null, cancellationToken: cancellationToken); return(true); }