in src/org/intellij/jflex/editor/JFlexAnnotator.java [22:74]
public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) {
PsiElement parent = element.getParent();
if (parent instanceof JFlexMacroDefinition && element == ((JFlexMacroDefinition)parent).getNameIdentifier()) {
holder.newSilentAnnotation(HighlightSeverity.INFORMATION)
.range(element)
.textAttributes(JFlexSyntaxHighlighterFactory.MACRO)
.create();
}
else if (element instanceof JFlexMacroRefExpression) {
PsiElement resolve = ((JFlexMacroRefExpression)element).getMacroReference().getReference().resolve();
holder.newSilentAnnotation(HighlightSeverity.INFORMATION)
.range(element)
.textAttributes(JFlexSyntaxHighlighterFactory.MACRO)
.create();
if (resolve == null) {
holder.newAnnotation(HighlightSeverity.WARNING, "Unresolved macro reference")
.range(element)
.create();
}
}
else if (element instanceof JFlexStateDefinition) {
holder.newSilentAnnotation(HighlightSeverity.INFORMATION)
.range(((JFlexStateDefinition)element).getNameIdentifier())
.textAttributes(JFlexSyntaxHighlighterFactory.STATE)
.create();
}
else if (element instanceof JFlexStateReference) {
boolean isYYINITIAL = JFlexPsiImplUtil.isYYINITIAL(element.getText());
PsiReference reference = isYYINITIAL ? null : element.getReference();
PsiElement resolve = reference == null ? null : reference.resolve();
holder.newSilentAnnotation(HighlightSeverity.INFORMATION)
.range(element)
.textAttributes(JFlexSyntaxHighlighterFactory.STATE)
.create();
if (!isYYINITIAL && resolve == null) {
holder.newAnnotation(HighlightSeverity.WARNING, "Unresolved state reference")
.range(element)
.create();
}
}
else if (element instanceof JFlexClassExpression) {
holder.newSilentAnnotation(HighlightSeverity.INFORMATION)
.range(element)
.textAttributes(JFlexSyntaxHighlighterFactory.CLASS)
.create();
}
else if (element instanceof JFlexJavaCode || element instanceof JFlexJavaType) {
holder.newSilentAnnotation(HighlightSeverity.INFORMATION)
.range(element)
.textAttributes(JFlexSyntaxHighlighterFactory.RAW_CODE)
.create();
}
}