public override Task <CodeLens> Handle(CodeLens request, CancellationToken cancellationToken)
        {
            // TODO: Catch deserializtion exception on bad object
            CodeLensData codeLensData = request.Data.ToObject <CodeLensData>();

            ICodeLensProvider originalProvider = _symbolsService
                                                 .GetCodeLensProviders()
                                                 .FirstOrDefault(provider => provider.ProviderId.Equals(codeLensData.ProviderId, StringComparison.Ordinal));

            ScriptFile scriptFile = _workspaceService.GetFile(codeLensData.Uri);

            return(originalProvider.ResolveCodeLens(request, scriptFile));
        }
        public bool CanResolve(CodeLens value)
        {
            CodeLensData codeLensData = value.Data.ToObject <CodeLensData>();

            return(value?.Data != null && _symbolsService.GetCodeLensProviders().Any(provider => provider.ProviderId.Equals(codeLensData.ProviderId)));
        }