Internal error in sample server's implementation of semantic tokens
cpitclaudel opened this issue · 0 comments
cpitclaudel commented
I'm getting the following message from the sample server when I request semantic tokens from it:
{
"jsonrpc": "2.0",
"id": 3,
"error": {
"code": -32603,
"message": "Internal Error - (message…)"
}
}
… where (message…)
is:
System.NullReferenceException: Object reference not set to an instance of an object.
at SampleServer.SemanticTokensHandler.GetSemanticTokensDocument(ITextDocumentIdentifierParams params, CancellationToken cancellationToken) in C:\build\csharp-language-server-protocol\sample\SampleServer\SemanticTokensHandler.cs:line 77
at OmniSharp.Extensions.LanguageServer.Protocol.Document.SemanticTokensHandlerBase.Handle(SemanticTokensParams request, CancellationToken cancellationToken) in C:\build\git\csharp-language-server-protocol\src\Protocol\Features\Document\SemanticTokensFeature.cs:line 735
at SampleServer.SemanticTokensHandler.Handle(SemanticTokensParams request, CancellationToken cancellationToken) in C:\build\csharp-language-server-protocol\sample\SampleServer\SemanticTokensHandler.cs:line 28
at OmniSharp.Extensions.LanguageServer.Server.Pipelines.SemanticTokensDeltaPipeline`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next) in C:\build\git\csharp-language-server-protocol\src\Server\Pipelines\SemanticTokensDeltaPipeline.cs:line 18
at OmniSharp.Extensions.LanguageServer.Server.Pipelines.ResolveCommandPipeline`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next) in C:\build\git\csharp-language-server-protocol\src\Server\Pipelines\ResolveCommandPipeline.cs:line 29
at MediatR.Pipeline.RequestPreProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestPostProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestExceptionProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestExceptionProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestExceptionActionProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at MediatR.Pipeline.RequestExceptionActionProcessorBehavior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
at OmniSharp.Extensions.JsonRpc.RequestRouterBase`1.<RouteRequest>g__InnerRoute|7_0(IServiceScopeFactory serviceScopeFactory, Request request, TDescriptor descriptor, Object params, CancellationToken token, ILogger logger) in C:\build\git\csharp-language-server-protocol\src\JsonRpc\RequestRouterBase.cs:line 161
at OmniSharp.Extensions.JsonRpc.RequestRouterBase`1.RouteRequest(IRequestDescriptor`1 descriptors, Request request, CancellationToken token) in C:\build\git\csharp-language-server-protocol\src\JsonRpc\RequestRouterBase.cs:line 145
at OmniSharp.Extensions.JsonRpc.DefaultRequestInvoker.<>c__DisplayClass10_0.<<RouteRequest>b__5>d.MoveNext() in C:\build\git\csharp-language-server-protocol\src\JsonRpc\DefaultRequestInvoker.cs:line 105
As far as I can tell (from attaching to the server with a debugger), CreateRegistrationOptions
is not called and RegistrationOptions.Legend
is null.
I've tried with a different LSP client, and I hit a different error: this time CreateRegistrationOptions
is called with capability == null
, which causes capability.TokenModifiers
to fail.
Is there any info I can provide to help debug the issue?