public static void CleanupCache(
        ILogger logger)
    {
        var analyzerProviders = new AnalyzerProviderCollector(logger);

        analyzerProviders.CacheCleanup();
    }
        public static async Task Main(string[] args)
        {
            var analyzerProviders = new AnalyzerProviderCollector();
            var apsData           = await analyzerProviders.CollectAllBaseRules();

            var jsonOptions = new JsonSerializerOptions
            {
                Encoder                = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
                WriteIndented          = true,
                DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
            };

            var json = JsonSerializer.Serialize(apsData, jsonOptions);
            await File.WriteAllTextAsync(OutputFile, json, Encoding.UTF8);
        }
    public static async Task <Collection <AnalyzerProviderBaseRuleData> > GetAnalyzerProviderBaseRules(
        ILogger logger,
        ProviderCollectingMode providerCollectingMode,
        bool logWithAnsiConsoleMarkup)
    {
        var stopwatch = Stopwatch.StartNew();

        logger.LogTrace("     Collecting rules metadata");

        var analyzerProviders         = new AnalyzerProviderCollector(logger);
        var analyzerProviderBaseRules = await analyzerProviders.CollectAllBaseRules(providerCollectingMode, logWithAnsiConsoleMarkup);

        stopwatch.Stop();
        logger.LogTrace($"     Collecting rules metadata time: {stopwatch.Elapsed.GetPrettyTime()}");

        LogAnalyzerProviderInformation(logger, analyzerProviderBaseRules);
        LogAnalyzerProviderErrors(logger, analyzerProviderBaseRules);

        return(analyzerProviderBaseRules);
    }