OmniSharp/csharp-language-server-protocol

PartialResultToken is always `null`

uchr opened this issue · 0 comments

uchr commented

I tried to stream workspace symbols and faced a problem that request.PartialResultToken and request.WorkDoneToken are always null. It is reproduced on the sample client/server from this repository and also on my small example:

class WorkspaceSymbolsHandler : WorkspaceSymbolsHandlerBase
{
      public override Task<Container<SymbolInformation>> Handle(WorkspaceSymbolParams request, CancellationToken cancellationToken)
      {
         Debug.Assert(request.PartialResultToken != null); // always false
         Debug.Assert(request.WorkDoneToken != null); // always false

         var location = new Location(){
               Uri = "test.uuu",
               Range = new Range(0, 0, 1, 1)
         };

         var symbols = new List<SymbolInformation>() {
               new SymbolInformation{ Name = "Symbol-1", Location = location},
               new SymbolInformation{ Name = "Symbol-2", Location = location},
               new SymbolInformation{ Name = "Symbol-3", Location = location},
         };

         return Task.FromResult<Container<SymbolInformation>>(symbols);
      }

   protected override WorkspaceSymbolRegistrationOptions CreateRegistrationOptions(WorkspaceSymbolCapability capability, ClientCapabilities clientCapabilities)
   {
      return new(){ WorkDoneProgress = true };
   }
}

Do I have to do something else on the client or on the server to get a token?