public Task <VSCodeAction> ResolveCodeActionAsync(VSCodeAction vsCodeAction, CancellationToken cancellationToken) { Contract.ThrowIfNull(_clientCapabilities, $"{nameof(InitializeAsync)} has not been called."); return(RequestDispatcher.ExecuteRequestAsync <VSCodeAction, VSCodeAction>(Queue, MSLSPMethods.TextDocumentCodeActionResolveName, vsCodeAction, _clientCapabilities, ClientName, cancellationToken)); }
public async void ResolveCodeActionsAsync_ReturnsCodeActions() { // Arrange var testCSharpDocUri = new Uri("C:/path/to/file.razor.g.cs"); var requestInvoker = new Mock <LSPRequestInvoker>(); var documentManager = new Mock <TrackingLSPDocumentManager>(); var expectedResponse = new VSCodeAction() { Title = "Something", Data = new object() }; requestInvoker.Setup(invoker => invoker.ReinvokeRequestOnServerAsync <VSCodeAction, VSCodeAction>( MSLSPMethods.TextDocumentCodeActionResolveName, LanguageServerKind.CSharp.ToContentType(), It.IsAny <VSCodeAction>(), It.IsAny <CancellationToken>() )).Returns(Task.FromResult(expectedResponse)); var target = new DefaultRazorLanguageServerCustomMessageTarget(documentManager.Object, JoinableTaskContext, requestInvoker.Object); var request = new VSCodeAction() { Title = "Something", }; // Act var result = await target.ResolveCodeActionsAsync(request, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(expectedResponse, result); }
private static async Task <LSP.VSCodeAction> RunGetCodeActionResolveAsync( TestLspServer testLspServer, VSCodeAction unresolvedCodeAction, LSP.ClientCapabilities clientCapabilities = null) { var result = await testLspServer.ExecuteRequestAsync <LSP.VSCodeAction, LSP.VSCodeAction>( LSP.MSLSPMethods.TextDocumentCodeActionResolveName, unresolvedCodeAction, clientCapabilities, null, CancellationToken.None); return(result); }
private static async Task <LSP.VSCodeAction> RunGetCodeActionResolveAsync( Solution solution, VSCodeAction unresolvedCodeAction, LSP.ClientCapabilities clientCapabilities = null) { var queue = CreateRequestQueue(solution); var result = await GetLanguageServer(solution).ExecuteRequestAsync <LSP.VSCodeAction, LSP.VSCodeAction>(queue, LSP.MSLSPMethods.TextDocumentCodeActionResolveName, unresolvedCodeAction, clientCapabilities, null, CancellationToken.None); return(result); }
public override async Task <VSCodeAction> ResolveCodeActionsAsync(VSCodeAction codeAction, CancellationToken cancellationToken) { if (codeAction is null) { throw new ArgumentNullException(nameof(codeAction)); } var result = await _requestInvoker.ReinvokeRequestOnServerAsync <VSCodeAction, VSCodeAction>( MSLSPMethods.TextDocumentCodeActionResolveName, LanguageServerKind.CSharp.ToContentType(), codeAction, cancellationToken).ConfigureAwait(false); return(result); }
public async void ResolveCodeActionsAsync_ReturnsSingleCodeAction() { // Arrange var testCSharpDocUri = new Uri("C:/path/to/file.razor.g.cs"); var requestInvoker = new Mock <LSPRequestInvoker>(MockBehavior.Strict); var documentManager = new Mock <TrackingLSPDocumentManager>(MockBehavior.Strict); var expectedCodeAction = new VSCodeAction() { Title = "Something", Data = new object() }; var unexpectedCodeAction = new VSCodeAction() { Title = "Something Else", Data = new object() }; IEnumerable <VSCodeAction> expectedResponses = new List <VSCodeAction>() { expectedCodeAction, unexpectedCodeAction }; requestInvoker.Setup(invoker => invoker.ReinvokeRequestOnMultipleServersAsync <VSCodeAction, VSCodeAction>( MSLSPMethods.TextDocumentCodeActionResolveName, LanguageServerKind.CSharp.ToContentType(), It.IsAny <Func <JToken, bool> >(), It.IsAny <VSCodeAction>(), It.IsAny <CancellationToken>() )).Returns(Task.FromResult(expectedResponses)); 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 VSCodeAction() { Title = "Something", }; // Act var result = await target.ResolveCodeActionsAsync(request, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(expectedCodeAction.Title, result.Title); }
public Task <VSCodeAction> ResolveCodeActionAsync(VSCodeAction vsCodeAction, CancellationToken cancellationToken) => _requestHandlerProvider.ExecuteRequestAsync <VSCodeAction, VSCodeAction>(MSLSPMethods.TextDocumentCodeActionResolveName, vsCodeAction, _clientCapabilities, _clientName, cancellationToken);
public abstract Task <VSCodeAction> ResolveCodeActionsAsync(VSCodeAction codeAction, CancellationToken cancellationToken);
public TextDocumentIdentifier?GetTextDocumentIdentifier(VSCodeAction request) => ((JToken)request.Data !).ToObject <CodeActionResolveData>().TextDocument;