public static IdeAnalyzerOptions GetIdeAnalyzerOptions(this IGlobalOptionService globalOptions, HostLanguageServices languageServices)
    {
        var language = languageServices.Language;
        var supportsCleanupOptions = languageServices.GetService <ISyntaxFormattingOptionsStorage>() != null;

        return(new(
                   CrashOnAnalyzerException : globalOptions.GetOption(CrashOnAnalyzerException),
                   FadeOutUnusedImports : globalOptions.GetOption(FadeOutUnusedImports, language),
                   FadeOutUnreachableCode : globalOptions.GetOption(FadeOutUnreachableCode, language),
                   ReportInvalidPlaceholdersInStringDotFormatCalls : globalOptions.GetOption(ReportInvalidPlaceholdersInStringDotFormatCalls, language),
                   ReportInvalidRegexPatterns : globalOptions.GetOption(ReportInvalidRegexPatterns, language),
                   ReportInvalidJsonPatterns : globalOptions.GetOption(ReportInvalidJsonPatterns, language),
                   DetectAndOfferEditorFeaturesForProbableJsonStrings : globalOptions.GetOption(DetectAndOfferEditorFeaturesForProbableJsonStrings, language),
                   CleanupOptions : supportsCleanupOptions ? globalOptions.GetCodeCleanupOptions(languageServices) : null));
    }
 public static ValueTask <CodeCleanupOptions> GetCodeCleanupOptionsAsync(this Document document, IGlobalOptionService globalOptions, CancellationToken cancellationToken)
 => document.GetCodeCleanupOptionsAsync(globalOptions.GetCodeCleanupOptions(document.Project.LanguageServices), cancellationToken);