public void Configure(LanguageServerOptions options) => options.OnSemanticTokens(
     (@params, observer, arg3) => {
     observer.OnNext(new SemanticTokensPartialResult()
     {
         Data = new[] { 0 }.ToImmutableArray()
     });
     observer.OnNext(new SemanticTokensPartialResult()
     {
         Data = new[] { 0, 1 }.ToImmutableArray()
     });
     observer.OnNext(new SemanticTokensPartialResult()
     {
         Data = new[] { 0, 1, 2 }.ToImmutableArray()
     });
     observer.OnCompleted();
 }, new SemanticTokensRegistrationOptions()
     );
        private void ConfigureServer(LanguageServerOptions options)
        {
            options.OnCompletion(
                (@params, token) => Task.FromResult(new CompletionList()),
                registrationOptions: new CompletionRegistrationOptions()
            {
                DocumentSelector    = DocumentSelector.ForLanguage("csharp"),
                ResolveProvider     = false,
                TriggerCharacters   = new Container <string>("a", "b"),
                AllCommitCharacters = new Container <string>("1", "2"),
            });

            options.OnSemanticTokens(
                (builder, @params, ct) => { return(Task.CompletedTask); },
                (@params, token) => { return(Task.FromResult(new SemanticTokensDocument(new SemanticTokensLegend()))); },
                new SemanticTokensRegistrationOptions());
        }