Exemplo n.º 1
0
        public Task <SemanticTokens> GetTextDocumentSemanticTokensRangeAsync(SemanticTokensRangeParams semanticTokensRangeParams, CancellationToken cancellationToken)
        {
            Contract.ThrowIfNull(_clientCapabilities, $"{nameof(InitializeAsync)} has not been called.");

            return(RequestDispatcher.ExecuteRequestAsync <SemanticTokensRangeParams, SemanticTokens>(Queue, Methods.TextDocumentSemanticTokensRangeName,
                                                                                                     semanticTokensRangeParams, _clientCapabilities, ClientName, cancellationToken));
        }
Exemplo n.º 2
0
        public override async Task <SemanticTokens> Handle(
            SemanticTokensRangeParams request, CancellationToken cancellationToken)
        {
            var result = await base.Handle(request, cancellationToken);

            return(result);
        }
Exemplo n.º 3
0
        public override async Task <OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokens> Handle(
            SemanticTokensRangeParams request, CancellationToken cancellationToken)
        {
            var result = await base.Handle(request, cancellationToken);

            _logger.LogInformation(JsonConvert.SerializeObject(result));
            return(result);
        }
        public async Task <SemanticTokens> Handle(SemanticTokensRangeParams request, CancellationToken cancellationToken)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            return(await Handle(request.TextDocument.Uri.GetAbsolutePath(), cancellationToken, request.Range));
        }
Exemplo n.º 5
0
 public static IRequestProgressObservable <SemanticTokensPartialResult, SemanticTokens> RequestSemanticTokensRange(
     this ITextDocumentLanguageClient mediator,
     SemanticTokensRangeParams @params, CancellationToken cancellationToken = default
     ) =>
 mediator.ProgressManager.MonitorUntil(
     @params, (partial, result) => new SemanticTokens {
     Data     = partial.Data,
     ResultId = result.ResultId
 }, cancellationToken
     );
Exemplo n.º 6
0
        public virtual async Task <SemanticTokens> Handle(SemanticTokensRangeParams request, CancellationToken cancellationToken)
        {
            var document = await GetSemanticTokensDocument(request, cancellationToken);

            var builder = document.Create();

            await Tokenize(builder, request, cancellationToken);

            return(builder.Commit().GetSemanticTokens(request.Range));
        }
        public async Task <SemanticTokens?> Handle(SemanticTokensRangeParams request, CancellationToken cancellationToken)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var semanticTokens = await HandleAsync(request.TextDocument, cancellationToken, request.Range);

            var amount = semanticTokens is null ? "no" : (semanticTokens.Data.Length / 5).ToString(Thread.CurrentThread.CurrentCulture);

            _logger.LogInformation($"Returned {amount} semantic tokens for range {request.Range} in {request.TextDocument.Uri}.");

            return(semanticTokens);
        }
        public async Task <SemanticTokens?> Handle(SemanticTokensRangeParams request, CancellationToken cancellationToken)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var semanticTokens = await _semanticTokensInfoService.GetSemanticTokensAsync(request.TextDocument, request.Range, cancellationToken);

            var amount = semanticTokens is null ? "no" : (semanticTokens.Data.Length / 5).ToString(Thread.CurrentThread.CurrentCulture);

            _logger.LogInformation($"Returned {amount} semantic tokens for range {request.Range} in {request.TextDocument.Uri}.");

            if (semanticTokens is not null)
            {
                Debug.Assert(semanticTokens.Data.Length % 5 == 0, $"Number of semantic token-ints should be divisible by 5. Actual number: {semanticTokens.Data.Length}");
                Debug.Assert(semanticTokens.Data.Length == 0 || semanticTokens.Data[0] >= 0, $"Line offset should not be negative.");
            }

            return(semanticTokens);
        }
Exemplo n.º 9
0
 public Task <SemanticTokens> GetTextDocumentSemanticTokensRangeAsync(SemanticTokensRangeParams semanticTokensRangeParams, CancellationToken cancellationToken)
 => _requestHandlerProvider.ExecuteRequestAsync <SemanticTokensRangeParams, SemanticTokens>(_queue, SemanticTokensMethods.TextDocumentSemanticTokensRangeName,
                                                                                            semanticTokensRangeParams, _clientCapabilities, _clientName, cancellationToken);
 public static Task <SemanticTokens> SemanticTokensRange(this ILanguageClientDocument mediator,
                                                         SemanticTokensRangeParams @params, CancellationToken cancellationToken)
 {
     return(mediator.SendRequest(@params, cancellationToken));
 }