in intellij-plugin-verifier/verifier-intellij/src/main/java/com/jetbrains/pluginverifier/reporting/DirectoryBasedPluginVerificationReportage.kt [121:157]
override fun reportVerificationResult(pluginVerificationResult: PluginVerificationResult) {
with(pluginVerificationResult) {
val verificationTargetDirectory = targetDirectoryProvider(verificationTarget)
val directory = verificationTargetDirectory
.resolve("plugins")
.resolve(createPluginVerificationDirectory(plugin))
reportVerificationDetails(directory, "verification-verdict.txt", listOf(pluginVerificationResult)) { it.verificationVerdict }
return when (this) {
is PluginVerificationResult.Verified -> {
reportVerificationDetails(directory, "compatibility-warnings.txt", compatibilityWarnings)
reportVerificationDetails(directory, "compatibility-problems.txt", compatibilityProblems)
reportVerificationDetails(directory, "dependencies.txt", listOf(dependenciesGraph)) { DependenciesGraphPrettyPrinter(it).prettyPresentation() }
reportVerificationDetails(directory, "deprecated-usages.txt", deprecatedUsages)
reportVerificationDetails(directory, "experimental-api-usages.txt", experimentalApiUsages)
reportVerificationDetails(directory, "internal-api-usages.txt", internalApiUsages)
reportVerificationDetails(directory, "internal-api-kt-usages.txt", kotlinInternalApiUsages)
reportVerificationDetails(directory, "override-only-usages.txt", overrideOnlyMethodUsages)
reportVerificationDetails(directory, "non-extendable-api-usages.txt", nonExtendableApiUsages)
reportVerificationDetails(directory, "plugin-structure-warnings.txt", pluginStructureWarnings)
reportVerificationDetails(directory, "telemetry.txt", telemetryAggregator[plugin].withPluginIdAndVersion(this).orEmpty()) { it.toPlainString() }
val problemIgnoredEvents = ignoredProblems.map { ProblemIgnoredEvent(plugin, verificationTarget, it.key, it.value) }
problemIgnoredEvents.forEach { allIgnoredProblemsReporter.report(it) }
IgnoredProblemsReporter(directory, verificationTarget).useReporter(problemIgnoredEvents)
pluginVerificationReportageResultAggregator.handleVerificationResult(this, verificationTargetDirectory)
}
is PluginVerificationResult.InvalidPlugin -> {
reportVerificationDetails(directory, "invalid-plugin.txt", pluginStructureErrors)
pluginVerificationReportageResultAggregator.handleVerificationResult(this, verificationTargetDirectory)
}
is PluginVerificationResult.NotFound -> Unit
is PluginVerificationResult.FailedToDownload -> Unit
}
}
}