in plugin-bazel/src/main/kotlin/org/jetbrains/bazel/languages/bazelrc/annotation/BazelrcFlagAnnotator.kt [38:106]
override fun annotate(element: PsiElement, holder: AnnotationHolder) {
if (!flagTokenPattern.accepts(element) || isLabel(element)) {
return
}
val flag =
(element.parent as? BazelrcFlag)
?.let(symbolReferenceService::getReferences)
?.flatMap(PsiSymbolReference::resolveReference)
?.firstOrNull()
?.let { it as? BazelFlagSymbol }
?.flag
if (flag == null) {
holder
.newAnnotation(HighlightSeverity.WARNING, BazelPluginBundle.message("annotation.bazelrc.unknown.flag", element.text))
.range(element.textRange)
.textAttributes(BazelrcHighlightingColors.UNKNOWN_FLAG)
.create()
return
}
when {
isHidden(flag) ->
holder
.newAnnotation(HighlightSeverity.INFORMATION, BazelPluginBundle.message("annotation.bazelrc.undocumented.flag", element.text))
.range(element.textRange)
.textAttributes(BazelrcHighlightingColors.UNKNOWN_FLAG)
.create()
isNoOp(flag) ->
holder
.newAnnotation(HighlightSeverity.INFORMATION, BazelPluginBundle.message("annotation.bazelrc.idle.flag", element.text))
.range(element.textRange)
.textAttributes(BazelrcHighlightingColors.NOOP_FLAG)
.withFix(DeleteFlagUseFix(element, flag))
.create()
isDeprecated(flag, element) ->
holder
.newAnnotation(HighlightSeverity.WARNING, BazelPluginBundle.message("annotation.bazelrc.deprecated.flag", element.text))
.range(element.textRange)
.textAttributes(BazelrcHighlightingColors.DEPRECATED_FLAG)
.create()
isOld(flag, element.text) ->
holder
.newAnnotation(HighlightSeverity.INFORMATION, oldAnnotationMessage(flag, element.text))
.range(element.textRange)
.textAttributes(BazelrcHighlightingColors.DEPRECATED_FLAG)
.withFix(RenameFlagNameFix(element, flag))
.create()
isNotApplicable(flag, element) ->
holder
.newAnnotation(
HighlightSeverity.INFORMATION,
BazelPluginBundle.message(
"annotation.bazelrc.flag.not.applicable",
element.text,
element.parentOfType<BazelrcLine>(false)!!.command,
),
).range(element.textRange)
.textAttributes(BazelrcHighlightingColors.DEPRECATED_FLAG)
.create()
else -> {}
}
}