Esempio n. 1
0
        public static ILanguageServerRegistry OnCodeLens(this ILanguageServerRegistry registry,
                                                         Action <CodeLensParams, IObserver <IEnumerable <CodeLens> > > handler,
                                                         Func <CodeLens, bool> canResolve,
                                                         Func <CodeLens, Task <CodeLens> > resolveHandler,
                                                         CodeLensRegistrationOptions registrationOptions)
        {
            registrationOptions ??= new CodeLensRegistrationOptions();
            registrationOptions.ResolveProvider = canResolve != null && resolveHandler != null;
            canResolve ??= item => registrationOptions.ResolveProvider;
            resolveHandler ??= (link) => Task.FromException <CodeLens>(new NotImplementedException());

            return(registry.AddHandler(TextDocumentNames.CodeLens,
                                       _ => new LanguageProtocolDelegatingHandlers.PartialResults <CodeLensParams, CodeLensContainer, CodeLens,
                                                                                                   CodeLensRegistrationOptions>(
                                           handler,
                                           registrationOptions,
                                           _.GetRequiredService <IProgressManager>(),
                                           x => new CodeLensContainer(x)))
                   .AddHandler(TextDocumentNames.CodeLensResolve,
                               new LanguageProtocolDelegatingHandlers.CanBeResolved <CodeLens, CodeLensRegistrationOptions>(
                                   resolveHandler,
                                   canResolve,
                                   registrationOptions))
                   );
        }
        public void SimpleTest(string expected)
        {
            var model = new CodeLensRegistrationOptions()
            {
                DocumentSelector = new DocumentSelector(new[] { new DocumentFilter()
                                                                {
                                                                    Language = "csharp",
                                                                    Pattern  = "pattern",
                                                                    Scheme   = "scheme"
                                                                }, new DocumentFilter()
                                                                {
                                                                    Language = "vb",
                                                                    Pattern  = "pattern",
                                                                    Scheme   = "scheme"
                                                                } }),
                ResolveProvider = true
            };
            var result = Fixture.SerializeObject(model);

            result.Should().Be(expected);

            var deresult = new Serializer(ClientVersion.Lsp3).DeserializeObject <CodeLensRegistrationOptions>(expected);

            deresult.ShouldBeEquivalentTo(model);
        }
Esempio n. 3
0
 public DelegatingHandler(
     Func <CodeLensParams, CancellationToken, Task <CodeLensContainer> > handler,
     Func <CodeLens, CancellationToken, Task <CodeLens> > resolveHandler,
     Func <CodeLens, bool> canResolve,
     Action <CodeLensCapability> setCapability,
     CodeLensRegistrationOptions registrationOptions) : base(registrationOptions)
 {
     _handler        = handler;
     _resolveHandler = resolveHandler;
     _canResolve     = canResolve;
     _setCapability  = setCapability;
 }
        public static IDisposable OnCodeLens(
            this ILanguageServerRegistry registry,
            Func <CodeLensParams, CancellationToken, Task <CodeLensContainer> > handler,
            Func <CodeLens, CancellationToken, Task <CodeLens> > resolveHandler = null,
            Func <CodeLens, bool> canResolve = null,
            CodeLensRegistrationOptions registrationOptions = null,
            Action <CodeLensCapability> setCapability       = null)
        {
            var codeLensRegistrationOptions = new CodeLensRegistrationOptions();

            codeLensRegistrationOptions.ResolveProvider = canResolve != null && resolveHandler != null;
            if (registrationOptions != null)
            {
                codeLensRegistrationOptions.DocumentSelector = registrationOptions.DocumentSelector;
            }
            return(registry.AddHandlers(new DelegatingHandler(handler, resolveHandler, registry.ProgressManager, canResolve, setCapability, codeLensRegistrationOptions)));
        }
Esempio n. 5
0
        public static ILanguageServerRegistry OnCodeLens(this ILanguageServerRegistry registry,
                                                         Func <CodeLensParams, Task <CodeLensContainer> > handler,
                                                         Func <CodeLens, bool> canResolve,
                                                         Func <CodeLens, Task <CodeLens> > resolveHandler,
                                                         CodeLensRegistrationOptions registrationOptions)
        {
            registrationOptions ??= new CodeLensRegistrationOptions();
            registrationOptions.ResolveProvider = canResolve != null && resolveHandler != null;
            canResolve ??= item => registrationOptions.ResolveProvider;
            resolveHandler ??= (link) => Task.FromException <CodeLens>(new NotImplementedException());

            return(registry.AddHandler(TextDocumentNames.CodeLens,
                                       new LanguageProtocolDelegatingHandlers.RequestRegistration <CodeLensParams, CodeLensContainer,
                                                                                                   CodeLensRegistrationOptions>(
                                           handler,
                                           registrationOptions))
                   .AddHandler(TextDocumentNames.CodeLensResolve,
                               new LanguageProtocolDelegatingHandlers.CanBeResolved <CodeLens, CodeLensRegistrationOptions>(
                                   resolveHandler,
                                   canResolve,
                                   registrationOptions))
                   );
        }
Esempio n. 6
0
 public CodeLensHandlerBase(CodeLensRegistrationOptions registrationOptions, ISerializer serializer) : base(registrationOptions) => _serializer = serializer;
Esempio n. 7
0
 public CodeLensHandler(CodeLensRegistrationOptions registrationOptions)
 {
     _options = registrationOptions;
     _options.ResolveProvider = true;
 }
 public CodeLensHandler(CodeLensRegistrationOptions registrationOptions, ProgressManager progressManager)
 {
     _options        = registrationOptions;
     ProgressManager = progressManager;
 }
Esempio n. 9
0
 public CodeLensHandler(CodeLensRegistrationOptions registrationOptions)
 {
     _options = registrationOptions;
 }