public async Task <INavigableSymbol> GetNavigableSymbolAsync(SnapshotSpan triggerSpan, CancellationToken cancellationToken) { if (_disposed) { return(null); } var snapshot = triggerSpan.Snapshot; var position = triggerSpan.Start; var document = snapshot.GetOpenDocumentInCurrentContextWithChanges(); if (document == null) { return(null); } var service = document.GetLanguageService <IGoToSymbolService>(); var context = new GoToSymbolContext(document, position, cancellationToken); await service.GetSymbolsAsync(context).ConfigureAwait(false); if (!context.TryGetItems(WellKnownSymbolTypes.Definition, out var definitions)) { return(null); } var snapshotSpan = new SnapshotSpan(snapshot, context.Span.ToSpan()); return(new NavigableSymbol(definitions.ToImmutableArray(), snapshotSpan, document, _presenters, _waitIndicator)); }
internal VSTypeScriptGoToSymbolContext(GoToSymbolContext underlyingObject) => UnderlyingObject = underlyingObject;