override fun shouldReportProblem()

in intellij-plugin-verifier/verifier-intellij/src/main/java/com/jetbrains/pluginverifier/filtering/KeepOnlyProblemsFilter.kt [16:39]


    override fun shouldReportProblem(
        problem: CompatibilityProblem,
        context: VerificationContext
    ): ProblemsFilter.Result {
        if (context !is PluginVerificationContext) {
            return ProblemsFilter.Result.Report
        }
        val currentId = context.idePlugin.pluginId
        val currentVersion = context.idePlugin.pluginVersion
        val isNullOrMatch = { s: String?, r: Regex? -> s == null || r == null || s.matches(r)}

        keepOnlyConditions.forEach { keepOnlyCondition ->
            val (pluginIdPattern, versionPattern, problemPattern) = keepOnlyCondition
            if (isNullOrMatch(currentId, pluginIdPattern)) {
                if (isNullOrMatch(currentVersion, versionPattern)) {
                    if (problem.shortDescription.matches(problemPattern).not()) {
                        return ProblemsFilter.Result.Ignore("the problem is ignored as " +
                                "it's not matching any pattern for keeping problems : \"${keepOnlyCondition.serializeCondition()}")
                    }
                }
            }
        }
        return ProblemsFilter.Result.Report
    }