in intellij-plugin-verifier/verifier-intellij/src/main/java/com/jetbrains/pluginverifier/usages/properties/PropertyChecker.kt [24:66]
override fun checkProperty(
resourceBundleName: String,
propertyKey: String,
context: VerificationContext,
usageLocation: Location
) {
if (resourceBundleName != getBundleBaseName(resourceBundleName)) {
//In general, we can't resolve non-base bundles, like "some.Bundle_en" because we don't know the locale to use.
return
}
val resolutionResult = context.classResolver.resolveExactPropertyResourceBundle(resourceBundleName, Locale.ROOT)
if (resolutionResult !is ResolutionResult.Found) {
return
}
val resourceBundle = resolutionResult.value
if (resourceBundle.containsKey(propertyKey)) return
// MP-3201: Don't report warnings about properties which were moved to *DeprecatedMessagesBundle files
val deprecatedBundleNames = context.classResolver.allBundleNameSet.baseBundleNames
.filter { it.endsWith("DeprecatedMessagesBundle") }
for (deprecatedBundleName in deprecatedBundleNames) {
val resolution = context.classResolver.resolveExactPropertyResourceBundle(deprecatedBundleName, Locale.ROOT)
if (resolution is ResolutionResult.Found) {
val deprecatedBundle = resolution.value
if (deprecatedBundle.containsKey(propertyKey)) {
context.warningRegistrar.registerCompatibilityWarning(
DeprecatedPropertyUsageWarning(propertyKey, resourceBundleName, deprecatedBundleName, usageLocation)
)
return
}
}
}
context.problemRegistrar.registerProblem(
MissingPropertyReferenceProblem(
propertyKey,
resourceBundleName,
usageLocation
)
)
}