public void annotate()

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();
    }
  }