public override async Task <SemanticTokens> Handle( SemanticTokensParams request, CancellationToken cancellationToken) { var result = await base.Handle(request, cancellationToken); return(result); }
public async Task ProvideSemanticTokensAsync_CannotLookupVirtualDocument_ReturnsNullAsync() { // Arrange var testDocUri = new Uri("C:/path/to/file.razor"); LSPDocumentSnapshot testDocument = new TestLSPDocumentSnapshot(testDocUri, 0); var documentManager = new Mock <TrackingLSPDocumentManager>(MockBehavior.Strict); documentManager.Setup(manager => manager.TryGetDocument(It.IsAny <Uri>(), out testDocument)) .Returns(true); var target = new DefaultRazorLanguageServerCustomMessageTarget(documentManager.Object); var request = new SemanticTokensParams() { TextDocument = new TextDocumentIdentifier() { Uri = new Uri("C:/path/to/file.razor") } }; // Act var result = await target.ProvideSemanticTokensAsync(request, CancellationToken.None); // Assert Assert.Null(result); }
public override async Task <SemanticTokens> ProvideSemanticTokensAsync(SemanticTokensParams semanticTokensParams, CancellationToken cancellationToken) { if (semanticTokensParams is null) { throw new ArgumentNullException(nameof(semanticTokensParams)); } if (!_documentManager.TryGetDocument(semanticTokensParams.TextDocument.Uri, out var documentSnapshot)) { return(null); } if (!documentSnapshot.TryGetVirtualDocument <CSharpVirtualDocumentSnapshot>(out var csharpDoc)) { return(null); } semanticTokensParams.TextDocument.Uri = csharpDoc.Uri; var results = await _requestInvoker.ReinvokeRequestOnServerAsync <SemanticTokensParams, SemanticTokens>( LanguageServerConstants.LegacyRazorSemanticTokensEndpoint, LanguageServerKind.CSharp.ToContentType(), semanticTokensParams, cancellationToken).ConfigureAwait(false); return(results); }
public Task <SemanticTokens> GetTextDocumentSemanticTokensAsync(SemanticTokensParams semanticTokensParams, CancellationToken cancellationToken) { Contract.ThrowIfNull(_clientCapabilities, $"{nameof(InitializeAsync)} has not been called."); return(RequestDispatcher.ExecuteRequestAsync <SemanticTokensParams, SemanticTokens>(Queue, Methods.TextDocumentSemanticTokensFullName, semanticTokensParams, _clientCapabilities, ClientName, cancellationToken)); }
public override async Task <OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokens> Handle( SemanticTokensParams request, CancellationToken cancellationToken) { var result = await base.Handle(request, cancellationToken); _logger.LogInformation(JsonConvert.SerializeObject(result)); return(result); }
public async Task <SemanticTokens> Handle(SemanticTokensParams request, CancellationToken cancellationToken) { if (request is null) { throw new ArgumentNullException(nameof(request)); } return(await Handle(request.TextDocument.Uri.GetAbsolutePath(), cancellationToken, range : null)); }
public virtual async Task <SemanticTokens> Handle(SemanticTokensParams request, CancellationToken cancellationToken) { var document = await GetSemanticTokensDocument(request, cancellationToken); var builder = document.Create(); await Tokenize(builder, request, cancellationToken); return(builder.Commit().GetSemanticTokens()); }
public static IRequestProgressObservable <SemanticTokensPartialResult, SemanticTokens> RequestSemanticTokens( this ITextDocumentLanguageClient mediator, SemanticTokensParams @params, CancellationToken cancellationToken = default ) => mediator.ProgressManager.MonitorUntil( @params, (partial, result) => new SemanticTokens { Data = partial.Data, ResultId = result.ResultId }, cancellationToken );
public async Task ProvideSemanticTokensAsync_ReturnsSemanticTokensAsync() { // Arrange var testDocUri = new Uri("C:/path/to - project/file.razor"); var testVirtualDocUri = new Uri("C:/path/to - project/file2.razor.g"); var testCSharpDocUri = new Uri("C:/path/to - project/file.razor.g.cs"); var documentVersion = 0; var testVirtualDocument = new TestVirtualDocumentSnapshot(testVirtualDocUri, 0); var csharpVirtualDocument = new CSharpVirtualDocumentSnapshot(testCSharpDocUri, Mock.Of <ITextSnapshot>(MockBehavior.Strict), 0); LSPDocumentSnapshot testDocument = new TestLSPDocumentSnapshot(testDocUri, documentVersion, testVirtualDocument, csharpVirtualDocument); var documentManager = new Mock <TrackingLSPDocumentManager>(MockBehavior.Strict); documentManager.Setup(manager => manager.TryGetDocument(testDocUri, out testDocument)) .Returns(true); var expectedcSharpResults = new OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokens(); var requestInvoker = new Mock <LSPRequestInvoker>(MockBehavior.Strict); requestInvoker.Setup(invoker => invoker.ReinvokeRequestOnServerAsync <SemanticTokensParams, OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokens>( LanguageServerConstants.LegacyRazorSemanticTokensEndpoint, LanguageServerKind.CSharp.ToContentType(), It.IsAny <SemanticTokensParams>(), It.IsAny <CancellationToken>() )).Returns(Task.FromResult(expectedcSharpResults)); var uIContextManager = new Mock <RazorUIContextManager>(MockBehavior.Strict); var disposable = new Mock <IDisposable>(MockBehavior.Strict); var clientOptionsMonitor = new Mock <RazorLSPClientOptionsMonitor>(MockBehavior.Strict); var target = new DefaultRazorLanguageServerCustomMessageTarget( documentManager.Object, JoinableTaskContext, requestInvoker.Object, uIContextManager.Object, disposable.Object, clientOptionsMonitor.Object); var request = new SemanticTokensParams() { TextDocument = new TextDocumentIdentifier() { Uri = new Uri("C:/path/to%20-%20project/file.razor") } }; var expectedResults = new ProvideSemanticTokensResponse(expectedcSharpResults, documentVersion); // Act var result = await target.ProvideSemanticTokensAsync(request, CancellationToken.None); // Assert Assert.Equal(expectedResults, result); }
public async Task ProvideSemanticTokensAsync_ReturnsSemanticTokensAsync() { // Arrange var testDocUri = new Uri("C:/path/to/file.razor"); var testVirtualDocUri = new Uri("C:/path/to/file2.razor.g"); var testCSharpDocUri = new Uri("C:/path/to/file.razor.g.cs"); var testVirtualDocument = new TestVirtualDocumentSnapshot(testVirtualDocUri, 0); var csharpVirtualDocument = new CSharpVirtualDocumentSnapshot(testCSharpDocUri, Mock.Of <ITextSnapshot>(), 0); LSPDocumentSnapshot testDocument = new TestLSPDocumentSnapshot(testDocUri, 0, testVirtualDocument, csharpVirtualDocument); var documentManager = new Mock <TrackingLSPDocumentManager>(MockBehavior.Strict); documentManager.Setup(manager => manager.TryGetDocument(It.IsAny <Uri>(), out testDocument)) .Returns(true); var expectedResults = new SemanticTokens { }; var requestInvoker = new Mock <LSPRequestInvoker>(MockBehavior.Strict); requestInvoker.Setup(invoker => invoker.ReinvokeRequestOnServerAsync <SemanticTokensParams, SemanticTokens>( LanguageServerConstants.LegacyRazorSemanticTokensEndpoint, LanguageServerKind.CSharp.ToContentType(), It.IsAny <SemanticTokensParams>(), It.IsAny <CancellationToken>() )).Returns(Task.FromResult(expectedResults)); var uIContextManager = new Mock <RazorUIContextManager>(MockBehavior.Strict); var target = new DefaultRazorLanguageServerCustomMessageTarget(documentManager.Object, JoinableTaskContext, requestInvoker.Object, uIContextManager.Object); var request = new SemanticTokensParams() { TextDocument = new TextDocumentIdentifier() { Uri = testDocUri } }; // Act var result = await target.ProvideSemanticTokensAsync(request, CancellationToken.None); // Assert Assert.Equal(expectedResults, result); }
public override RpcResult SemanticTokensFull(SemanticTokensParams args) { BHLSPWorkspace.self.TryAddDocument(args.textDocument.uri); var document = BHLSPWorkspace.self.FindDocument(args.textDocument.uri); if (document is BHLTextDocument bhldocument) { return(RpcResult.Success(new SemanticTokens { data = bhldocument.DataSemanticTokens.ToArray() })); } if (document is JSTextDocument /*jsdocument*/) { return(RpcResult.Success(new SemanticTokens { data = new uint[0] })); } return(RpcResult.Success()); }
#pragma warning disable CS0809 // Obsolete member overrides non-obsolete member public override async Task <ProvideSemanticTokensResponse> ProvideSemanticTokensAsync(SemanticTokensParams semanticTokensParams, CancellationToken cancellationToken) #pragma warning restore CS0809 // Obsolete member overrides non-obsolete member { if (semanticTokensParams is null) { throw new ArgumentNullException(nameof(semanticTokensParams)); } if (!_documentManager.TryGetDocument(semanticTokensParams.TextDocument.Uri, out var documentSnapshot)) { return(null); } if (!documentSnapshot.TryGetVirtualDocument <CSharpVirtualDocumentSnapshot>(out var csharpDoc)) { return(null); } semanticTokensParams.TextDocument.Uri = csharpDoc.Uri; var csharpResults = await _requestInvoker.ReinvokeRequestOnServerAsync <SemanticTokensParams, SemanticTokens>( LanguageServerConstants.LegacyRazorSemanticTokensEndpoint, LanguageServerKind.CSharp.ToContentType(), semanticTokensParams, cancellationToken).ConfigureAwait(false); var result = new ProvideSemanticTokensResponse(csharpResults, csharpDoc.HostDocumentSyncVersion); return(result); }
public Task <SemanticTokens> GetTextDocumentSemanticTokensAsync(SemanticTokensParams semanticTokensParams, CancellationToken cancellationToken) => _requestHandlerProvider.ExecuteRequestAsync <SemanticTokensParams, SemanticTokens>(_queue, SemanticTokensMethods.TextDocumentSemanticTokensName, semanticTokensParams, _clientCapabilities, _clientName, cancellationToken);
public abstract Task <SemanticTokens> ProvideSemanticTokensAsync(SemanticTokensParams semanticTokensParams, CancellationToken cancellationToken);
public abstract RpcResult SemanticTokensFull(SemanticTokensParams args);
public Task <SemanticTokens> GetTextDocumentSemanticTokensPublicAsync(SemanticTokensParams semanticTokensParams, CancellationToken cancellationToken) => GetTextDocumentSemanticTokensAsync(semanticTokensParams, cancellationToken);
public static Task <SemanticTokens> SemanticTokens(this ILanguageClientDocument mediator, SemanticTokensParams @params, CancellationToken cancellationToken) { return(mediator.SendRequest(@params, cancellationToken)); }