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)) } })
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)) } })