Exemple #1
0
        public override async Task <Container <SymbolInformation> > Handle(
            WorkspaceSymbolParams request,
            CancellationToken cancellationToken)
        {
            var omnisharpRequest = new FindSymbolsRequest
            {
                Filter           = request.Query,
                MaxItemsToReturn = 100,
            };

            var responses = await Task.WhenAll(
                _findSymbolsHandlers.Select(handler => handler.Handle(omnisharpRequest))
                );

            return(responses
                   .SelectMany(z => z?.QuickFixes.OfType <SymbolLocation>() ?? Enumerable.Empty <SymbolLocation>())
                   .Select(
                       x => new SymbolInformation
            {
                Name = x.Text,
                Kind = Helpers.ToSymbolKind(x.Kind),
                Location = new OmniSharp.Extensions.LanguageServer.Protocol.Models.Location
                {
                    Uri = Helpers.ToUri(x.FileName),
                    Range = Helpers.ToRange((x.Column, x.Line), (x.EndColumn, x.EndLine))
                }
            })
Exemple #2
0
        public async Task <QuickFixResponse> FindSymbols(FindSymbolsRequest request = null)
        {
            Func <string, bool> isMatch =
                candidate => request != null
                ? candidate.IsValidCompletionFor(request.Filter)
                : true;

            return(await FindSymbols(isMatch));
        }
        private async Task <QuickFixResponse> FindSymbolsWithFilter(string source, string filter)
        {
            var workspace  = TestHelpers.CreateSimpleWorkspace(source);
            var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions());
            var request    = new FindSymbolsRequest {
                Filter = filter
            };

            return(await controller.FindSymbols(request));
        }
        private async Task <QuickFixResponse> FindSymbolsWithFilter(string source, string filter)
        {
            var workspace = await TestHelpers.CreateSimpleWorkspace(source);

            var controller = new FindSymbolsService(workspace);
            RequestHandler <FindSymbolsRequest, QuickFixResponse> requestHandler = controller;
            var request = new FindSymbolsRequest {
                Filter = filter
            };

            return(await controller.Handle(request));
        }
        private async Task <QuickFixResponse> FindSymbols(string projectName)
        {
            using (var testProject = await TestAssets.Instance.GetTestProjectAsync(projectName, shadowCopy: false))
                using (var host = CreateOmniSharpHost(testProject.Directory))
                {
                    var request = new FindSymbolsRequest
                    {
                        Filter = ""
                    };

                    var requestHandler = GetRequestHandler(host);

                    return(await requestHandler.Handle(request));
                }
        }
        Handle(WorkspaceSymbolParams request, CancellationToken cancellationToken)
        {
            var omnisharpRequest = new FindSymbolsRequest {
                Filter           = request.Query,
                MaxItemsToReturn = 100,
            };

            var omnisharpResponse = await _FindSymbolsHandler.Handle(omnisharpRequest);

            var symbols = omnisharpResponse.QuickFixes?.Cast <SymbolLocation>().Select(
                x => new SymbolInformation {
                Name     = x.Text,
                Kind     = Helpers.ToSymbolKind(x.Kind),
                Location = new OmniSharp.Extensions.LanguageServer.Protocol.Models.Location {
                    Uri   = Helpers.ToUri(x.FileName),
                    Range = Helpers.ToRange((x.Column, x.Line), (x.EndColumn, x.EndLine))
                }
            })