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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 7
0
 public Task <VSCodeAction> ResolveCodeActionAsync(VSCodeAction vsCodeAction, CancellationToken cancellationToken)
 => _requestHandlerProvider.ExecuteRequestAsync <VSCodeAction, VSCodeAction>(MSLSPMethods.TextDocumentCodeActionResolveName,
                                                                             vsCodeAction, _clientCapabilities, _clientName, cancellationToken);
Exemplo n.º 8
0
 public abstract Task <VSCodeAction> ResolveCodeActionsAsync(VSCodeAction codeAction, CancellationToken cancellationToken);
Exemplo n.º 9
0
 public TextDocumentIdentifier?GetTextDocumentIdentifier(VSCodeAction request)
 => ((JToken)request.Data !).ToObject <CodeActionResolveData>().TextDocument;