Example #1
0
        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());
        }
Example #2
0
        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);
        }