public Task <Unit> Handle(SemanticTokensRefreshParams request, CancellationToken cancellationToken)
        {
            // We have to invalidate the tokens cache since it may no longer be up to date.
            _semanticTokensRefreshPublisher.EnqueueWorkspaceSemanticTokensRefresh();

            return(Unit.Task);
        }
예제 #2
0
        public async override Task <InterceptionResult> ApplyChangesAsync(
            JToken message, string containedLanguageName, CancellationToken cancellationToken)
        {
            var refreshParams = new SemanticTokensRefreshParams();
            await _requestInvoker.ReinvokeRequestOnServerAsync <SemanticTokensRefreshParams, Unit>(
                LanguageServerConstants.RazorSemanticTokensRefreshEndpoint,
                RazorLSPConstants.RazorLanguageServerName,
                refreshParams,
                cancellationToken).ConfigureAwait(false);

            return(InterceptionResult.NoChange);
        }
        public async Task Handle_QueuesRefresh()
        {
            // Arrange
            var clientSettings = GetInitializedParams(semanticRefreshEnabled: true);
            var serverClient   = new TestClient(clientSettings);
            var errorReporter  = new TestErrorReporter();

            using var semanticTokensRefreshPublisher = new DefaultWorkspaceSemanticTokensRefreshPublisher(serverClient, errorReporter);
            var refreshEndpoint = new SemanticTokensRefreshEndpoint(semanticTokensRefreshPublisher);
            var refreshParams   = new SemanticTokensRefreshParams();

            // Act
            await refreshEndpoint.Handle(refreshParams, CancellationToken.None);

            semanticTokensRefreshPublisher.GetTestAccessor().WaitForEmpty();

            // Assert
            Assert.Equal(WorkspaceNames.SemanticTokensRefresh, serverClient.Requests.Single().Method);
        }
예제 #4
0
 public abstract Task <Unit> Handle(SemanticTokensRefreshParams request, CancellationToken cancellationToken);