public FoldingRangeRegistrationOptions GetRegistrationOptions() => new FoldingRangeRegistrationOptions { DocumentSelector = DocumentSelector.ForLanguage("csharp") };
public OmniSharpSignatureHelpHandler(Mef.IRequestHandler <SignatureHelpRequest, SignatureHelpResponse> signatureHandler, DocumentSelector documentSelector) { _signatureHandler = signatureHandler; _documentSelector = documentSelector; }
public async Task Should_Aggregate_With_All_Related_Handlers() { var(client, _) = await Initialize( options => { }, options => { var identifier = Substitute.For <ITextDocumentIdentifier>(); identifier.GetTextDocumentAttributes(Arg.Any <DocumentUri>()).Returns( call => new TextDocumentAttributes(call.ArgAt <DocumentUri>(0), "file", "csharp") ); options.AddTextDocumentIdentifier(identifier); options.OnDocumentLink( codeLensParams => { return(Task.FromResult( new DocumentLinkContainer <Data>( new DocumentLink <Data> { Tooltip = "data-a", Data = new Data { Child = new Nested { Date = DateTimeOffset.MinValue }, Id = Guid.NewGuid(), Name = "name" } } ) )); }, documentLink => { documentLink.Tooltip = "resolved-a"; return(Task.FromResult(documentLink)); }, new DocumentLinkRegistrationOptions { DocumentSelector = DocumentSelector.ForPattern("**/*.cs") } ); options.OnDocumentLink( codeLensParams => { return(Task.FromResult( new DocumentLinkContainer <Nested>( new DocumentLink <Nested> { Tooltip = "nested-b", Data = new Nested { Date = DateTimeOffset.Now } } ) )); }, documentLink => { documentLink.Tooltip = "resolved-b"; return(Task.FromResult(documentLink)); }, new DocumentLinkRegistrationOptions { DocumentSelector = DocumentSelector.ForPattern("**/*.cs") } ); options.OnDocumentLink( codeLensParams => { return(Task.FromResult( new DocumentLinkContainer( new DocumentLink { Tooltip = "no-data-c", } ) )); }, documentLink => { documentLink.Tooltip = "resolved-c"; return(Task.FromResult(documentLink)); }, new DocumentLinkRegistrationOptions { DocumentSelector = DocumentSelector.ForPattern("**/*.cs") } ); options.OnDocumentLink( codeLensParams => { return(Task.FromResult( new DocumentLinkContainer( new DocumentLink { Tooltip = "not-included", } ) )); }, documentLink => { documentLink.Tooltip = "resolved-d"; return(Task.FromResult(documentLink)); }, new DocumentLinkRegistrationOptions { DocumentSelector = DocumentSelector.ForLanguage("vb") } ); } ); var items = await client.RequestDocumentLink( new DocumentLinkParams { TextDocument = new TextDocumentIdentifier("/some/path/file.cs"), } ); var lens = items.ToArray(); var responses = await Task.WhenAll(lens.Select(z => client.ResolveDocumentLink(z))); responses.Select(z => z.Tooltip).Should().Contain(new[] { "resolved-a", "resolved-b", "resolved-c" }); responses.Select(z => z.Tooltip).Should().NotContain("resolved-d"); lens.Length.Should().Be(3); }
public async Task Should_Aggregate_With_All_Related_Handlers() { var(client, _) = await Initialize( options => { }, options => { var identifier = Substitute.For <ITextDocumentIdentifier>(); identifier.GetTextDocumentAttributes(Arg.Any <DocumentUri>()).Returns( call => new TextDocumentAttributes(call.ArgAt <DocumentUri>(0), "file", "csharp") ); options.AddTextDocumentIdentifier(identifier); options.OnCodeLens( codeLensParams => { return(Task.FromResult( new CodeLensContainer <Fixtures.Data>( new CodeLens <Fixtures.Data> { Command = new Command { Name = "data-a", Arguments = JArray.FromObject(new object[] { 1, "2", false }) }, Data = new Fixtures.Data { Child = new Nested { Date = DateTimeOffset.MinValue }, Id = Guid.NewGuid(), Name = "name" } } ) )); }, l => { return(Task.FromResult(l with { Command = l.Command with { Name = "resolved-a" } })); }, (_, _) => new CodeLensRegistrationOptions { DocumentSelector = DocumentSelector.ForPattern("**/*.cs") } ); options.OnCodeLens( codeLensParams => { return(Task.FromResult( new CodeLensContainer <Nested>( new CodeLens <Nested> { Command = new Command { Name = "nested-b", Arguments = JArray.FromObject(new object[] { 1, "2", false }) }, Data = new Nested { Date = DateTimeOffset.Now } } ) )); }, l => { return(Task.FromResult(l with { Command = l.Command with { Name = "resolved-b" } })); },
public OmniSharpDocumentOnTypeFormattingHandler(Mef.IRequestHandler <FormatAfterKeystrokeRequest, FormatRangeResponse> formatAfterKeystrokeHandler, DocumentSelector documentSelector) : base(new DocumentOnTypeFormattingRegistrationOptions() { DocumentSelector = documentSelector, FirstTriggerCharacter = ";", // TODO: What should these be? MoreTriggerCharacter = new[] { "}", ")" } }) { _formatAfterKeystrokeHandler = formatAfterKeystrokeHandler; }
public DocumentSymbolRegistrationOptions GetRegistrationOptions(DocumentSymbolCapability capability, ClientCapabilities clientCapabilities) => new DocumentSymbolRegistrationOptions { DocumentSelector = DocumentSelector.ForLanguage("csharp") };
private static TextDocumentRegistrationOptions GetOptions <R>(IRegistration <R> handler, DocumentSelector documentSelector) where R : TextDocumentRegistrationOptions, new() { return(new R { DocumentSelector = documentSelector }); }
public OmniSharpDocumentFormattingHandler(Mef.IRequestHandler <CodeFormatRequest, CodeFormatResponse> codeFormatHandler, DocumentSelector documentSelector) { _codeFormatHandler = codeFormatHandler; _documentSelector = documentSelector; }
public OmniSharpImplementationHandler(Mef.IRequestHandler <FindImplementationsRequest, QuickFixResponse> findImplementationsHandler, DocumentSelector documentSelector) { _findImplementationsHandler = findImplementationsHandler; _documentSelector = documentSelector; }
public static ITextDocumentSyncHandler With(this ITextDocumentSyncHandler handler, DocumentSelector documentSelector, string language) { ((IDidChangeTextDocumentHandler)handler).GetRegistrationOptions().Returns(new TextDocumentChangeRegistrationOptions() { DocumentSelector = documentSelector }); ((IDidOpenTextDocumentHandler)handler).GetRegistrationOptions().Returns(new TextDocumentRegistrationOptions() { DocumentSelector = documentSelector }); ((IDidCloseTextDocumentHandler)handler).GetRegistrationOptions().Returns(new TextDocumentRegistrationOptions() { DocumentSelector = documentSelector }); ((IDidSaveTextDocumentHandler)handler).GetRegistrationOptions().Returns(new TextDocumentSaveRegistrationOptions() { DocumentSelector = documentSelector }); ((ITextDocumentIdentifier)handler).GetTextDocumentAttributes(Arg.Any <DocumentUri>()) .Returns((info) => new TextDocumentAttributes(info.Arg <DocumentUri>(), language)); handler .GetTextDocumentAttributes(Arg.Is <DocumentUri>(x => documentSelector.IsMatch(new TextDocumentAttributes(x, language)))) .Returns(c => new TextDocumentAttributes(c.Arg <DocumentUri>(), language)); return(handler); }
private static TextDocumentSaveRegistrationOptions CreateRegistrationOptions() { return(new TextDocumentSaveRegistrationOptions { DocumentSelector = DocumentSelector.ForLanguage(LanguageId) }); }
protected override DefinitionRegistrationOptions CreateRegistrationOptions(DefinitionCapability capability, ClientCapabilities clientCapabilities) { return(new DefinitionRegistrationOptions { DocumentSelector = DocumentSelector.ForLanguage("dafny") }); }
public async Task ShouldRouteToCorrect_Request_WithManyHandlers_CodeLensHandler() { var textDocumentSyncHandler = TextDocumentSyncHandlerExtensions.With(DocumentSelector.ForPattern("**/*.cs"), "csharp"); var textDocumentSyncHandler2 = TextDocumentSyncHandlerExtensions.With(DocumentSelector.ForPattern("**/*.cake"), "csharp"); textDocumentSyncHandler.Handle(Arg.Any <DidSaveTextDocumentParams>(), Arg.Any <CancellationToken>()) .Returns(Unit.Value); textDocumentSyncHandler2.Handle(Arg.Any <DidSaveTextDocumentParams>(), Arg.Any <CancellationToken>()) .Returns(Unit.Value); var codeActionHandler = Substitute.For <ICodeLensHandler>(); codeActionHandler.GetRegistrationOptions(Arg.Any <CodeLensCapability>(), Arg.Any <ClientCapabilities>()).Returns(new CodeLensRegistrationOptions { DocumentSelector = DocumentSelector.ForPattern("**/*.cs") }); codeActionHandler .Handle(Arg.Any <CodeLensParams>(), Arg.Any <CancellationToken>()) .Returns(new CodeLensContainer()); var codeActionHandler2 = Substitute.For <ICodeLensHandler>(); codeActionHandler2.GetRegistrationOptions(Arg.Any <CodeLensCapability>(), Arg.Any <ClientCapabilities>()).Returns(new CodeLensRegistrationOptions { DocumentSelector = DocumentSelector.ForPattern("**/*.cake") }); codeActionHandler2 .Handle(Arg.Any <CodeLensParams>(), Arg.Any <CancellationToken>()) .Returns(new CodeLensContainer()); var tdi = new TextDocumentIdentifiers(); var collection = new SharedHandlerCollection( SupportedCapabilitiesFixture.AlwaysTrue, tdi, Substitute.For <IResolverContext>(), new LspHandlerTypeDescriptorProvider( new[] { typeof(FoundationTests).Assembly, typeof(LanguageServer).Assembly, typeof(LanguageClient).Assembly, typeof(IRegistrationManager).Assembly, typeof(LspRequestRouter).Assembly } ) ) { textDocumentSyncHandler, textDocumentSyncHandler2, codeActionHandler, codeActionHandler2 }; collection.Initialize(); AutoSubstitute.Provide <IHandlerCollection>(collection); AutoSubstitute.Provide <IEnumerable <ILspHandlerDescriptor> >(collection); AutoSubstitute.Provide <IHandlerMatcher>(new TextDocumentMatcher(LoggerFactory.CreateLogger <TextDocumentMatcher>(), tdi)); var mediator = AutoSubstitute.Resolve <LspRequestRouter>(); var id = Guid.NewGuid().ToString(); var @params = new CodeLensParams { TextDocument = new TextDocumentIdentifier(new Uri("file:///c:/test/123.cs")) }; var request = new Request( id, TextDocumentNames.CodeLens, JObject.Parse(JsonConvert.SerializeObject(@params, new LspSerializer(ClientVersion.Lsp3).Settings)) ); await mediator.RouteRequest(mediator.GetDescriptors(request), request, CancellationToken.None); await codeActionHandler2.Received(0).Handle(Arg.Any <CodeLensParams>(), Arg.Any <CancellationToken>()); await codeActionHandler.Received(1).Handle(Arg.Any <CodeLensParams>(), Arg.Any <CancellationToken>()); }
public FoldingRangeRegistrationOptions GetRegistrationOptions(FoldingRangeCapability capability, ClientCapabilities clientCapabilities) => new FoldingRangeRegistrationOptions { DocumentSelector = DocumentSelector.ForLanguage("csharp") };
public OmniSharpCompletionHandler(Mef.IRequestHandler <AutoCompleteRequest, IEnumerable <AutoCompleteResponse> > autoCompleteHandler, DocumentSelector documentSelector) : base(new CompletionRegistrationOptions() { DocumentSelector = documentSelector, // TODO: Come along and add a service for getting autocompletion details after the fact. ResolveProvider = false, TriggerCharacters = new[] { ".", }, }) { _autoCompleteHandler = autoCompleteHandler; }
public static DocumentSelector Create() => DocumentSelector.ForLanguage(LanguageConstants.LanguageId);
private static DefinitionRegistrationOptions CreateRegistrationOptions() { return(new DefinitionRegistrationOptions { DocumentSelector = DocumentSelector.ForLanguage("dafny") }); }
public OmniSharpDefinitionHandler(Mef.IRequestHandler <GotoDefinitionRequest, GotoDefinitionResponse> definitionHandler, DocumentSelector documentSelector) : base(new DefinitionRegistrationOptions() { DocumentSelector = documentSelector }) { _definitionHandler = definitionHandler; }
public static ITextDocumentSyncHandler With(this ITextDocumentSyncHandler handler, DocumentSelector documentSelector) { ((IDidChangeTextDocumentHandler)handler).GetRegistrationOptions().Returns(new TextDocumentChangeRegistrationOptions() { DocumentSelector = documentSelector }); ((IDidOpenTextDocumentHandler)handler).GetRegistrationOptions().Returns(new TextDocumentRegistrationOptions() { DocumentSelector = documentSelector }); ((IDidCloseTextDocumentHandler)handler).GetRegistrationOptions().Returns(new TextDocumentRegistrationOptions() { DocumentSelector = documentSelector }); ((IDidSaveTextDocumentHandler)handler).GetRegistrationOptions().Returns(new TextDocumentSaveRegistrationOptions() { DocumentSelector = documentSelector }); handler .GetTextDocumentAttributes(Arg.Is <Uri>(x => documentSelector.IsMatch(new TextDocumentAttributes(x, "")))) .Returns(c => new TextDocumentAttributes(c.Arg <Uri>(), "")); return(handler); }
public OmniSharpDefinitionHandler(Mef.IRequestHandler <GotoDefinitionRequest, GotoDefinitionResponse> definitionHandler, DocumentSelector documentSelector) { _definitionHandler = definitionHandler; _documentSelector = documentSelector; }
public static ITextDocumentSyncHandler With(DocumentSelector documentSelector) { return(Substitute.For <ITextDocumentSyncHandler>().With(documentSelector)); }
public OmniSharpDocumentFormatRangeHandler(Mef.IRequestHandler <FormatRangeRequest, FormatRangeResponse> formatRangeHandler, DocumentSelector documentSelector) { _formatRangeHandler = formatRangeHandler; _documentSelector = documentSelector; }
public OmniSharpSignatureHelpHandler(Mef.IRequestHandler <SignatureHelpRequest, SignatureHelpResponse> signatureHandler, DocumentSelector documentSelector) : base(new SignatureHelpRegistrationOptions() { DocumentSelector = documentSelector, TriggerCharacters = new[] { ".", "?", "[" } }) { _signatureHandler = signatureHandler; }
public IEnumerable <Registration> GetRegistrationsMatchingSelector(DocumentSelector documentSelector) => _registrations .Select(z => z.Value) .Where(
public RenameHandler(Mef.IRequestHandler <RenameRequest, RenameResponse> renameHandler, DocumentSelector documentSelector) { _renameHandler = renameHandler; _documentSelector = documentSelector; }
public OmniSharpHoverHandler(Mef.IRequestHandler <TypeLookupRequest, TypeLookupResponse> definitionHandler, DocumentSelector documentSelector) : base(new HoverRegistrationOptions() { DocumentSelector = documentSelector }) { _definitionHandler = definitionHandler; }
public OmniSharpCompletionHandler(Mef.IRequestHandler <AutoCompleteRequest, IEnumerable <AutoCompleteResponse> > autoCompleteHandler, DocumentSelector documentSelector) { _autoCompleteHandler = autoCompleteHandler; _documentSelector = documentSelector; }
public static ITextDocumentSyncHandler With(DocumentSelector documentSelector, string language) { return(Substitute.For <ITextDocumentSyncHandler>().With(documentSelector, language)); }
public OmniSharpDocumentFormatRangeHandler(Mef.IRequestHandler <FormatRangeRequest, FormatRangeResponse> formatRangeHandler, DocumentSelector documentSelector) : base( new DocumentRangeFormattingRegistrationOptions() { DocumentSelector = documentSelector, }) { _formatRangeHandler = formatRangeHandler; }
public MyDocumentSymbolHandler(ProgressManager progressManager) : base(new DocumentSymbolRegistrationOptions() { DocumentSelector = DocumentSelector.ForLanguage("csharp") }, progressManager) { }