private async Task HandleOpenSolutionAsync(CancellationToken cancellationToken)
        {
            await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);

            if (!ConstFinder.HasParsedSolution)
            {
                await ConstFinder.TryParseSolutionAsync();
            }
        }
        protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress)
        {
            await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);

            await this.LoadSystemTextSettingsAsync(cancellationToken);

            Microsoft.VisualStudio.Shell.Events.SolutionEvents.OnAfterOpenSolution  += this.HandleOpenSolution;
            Microsoft.VisualStudio.Shell.Events.SolutionEvents.OnAfterCloseSolution += this.HandleCloseSolution;

            await this.SetUpRunningDocumentTableEventsAsync(cancellationToken).ConfigureAwait(false);

            var componentModel = GetGlobalService(typeof(SComponentModel)) as IComponentModel;

            await ConstFinder.TryParseSolutionAsync(componentModel);

            VSColorTheme.ThemeChanged += (e) => this.LoadSystemTextSettingsAsync(CancellationToken.None).LogAndForget(nameof(ConstVisualizerPackage));

            await SponsorRequestHelper.CheckIfNeedToShowAsync();

            Instance = this;
        }