public override async Task <SymbolInformation[]?> HandleRequestAsync( WorkspaceSymbolParams request, RequestContext context, CancellationToken cancellationToken ) { Contract.ThrowIfNull(context.Solution); var solution = context.Solution; using var progress = BufferedProgress.Create(request.PartialResultToken); var searcher = NavigateToSearcher.Create( solution, _asyncListener, new LSPNavigateToCallback(progress), request.Query, searchCurrentDocument: false, s_supportedKinds, _threadingContext.DisposalToken ); await searcher.SearchAsync(cancellationToken).ConfigureAwait(false); return(progress.GetValues()); }
public async Task <GraphBuilder> GetGraphAsync(Solution solution, IGraphContext context, CancellationToken cancellationToken) { var graphBuilder = await GraphBuilder.CreateForInputNodesAsync(solution, context.InputNodes, cancellationToken).ConfigureAwait(false); var callback = new ProgressionNavigateToSearchCallback(context, graphBuilder); var searcher = NavigateToSearcher.Create( solution, _asyncListener, callback, _searchPattern, NavigateToUtilities.GetKindsProvided(solution), _threadingContext.DisposalToken); await searcher.SearchAsync(searchCurrentDocument : false, cancellationToken).ConfigureAwait(false); return(graphBuilder); }