private static void highlightExtension(DomElementAnnotationHolder holder, Extension extension) {
    ExtensionPoint extensionPoint = extension.getExtensionPoint();
    if (extensionPoint == null) return;
    final PsiClass beanClass = extensionPoint.getBeanClass().getValue();
    if (beanClass == null) return;

    String epName = extensionPoint.getEffectiveQualifiedName();
    if (LocalInspectionEP.LOCAL_INSPECTION.getName().equals(epName) ||
        InspectionEP.GLOBAL_INSPECTION.getName().equals(epName)) {
      if (isInternal(extension, "isInternal")) {
        return;
      }
      GenericAttributeValue<?> implementationClass = DevKitDomUtil.getAttribute(extension, "implementationClass");
      if (implementationClass == null || implementationClass.getStringValue() == null) {
        return;
      }
      checkNonLocalizableAttribute(holder, extension, "displayName", new InspectionI18NQuickFix("displayName", "inspection"));
      checkNonLocalizableAttribute(holder, extension, "groupName", null);
      //checkNonLocalizableAttribute(holder, element, "groupPath", null);
    }
    else if (IntentionManagerImpl.EP_INTENTION_ACTIONS.getName().equals(epName)) {
      checkNonLocalizableTag(holder, extension, "category", null);
    }
    else if (InheritanceUtil.isInheritor(beanClass, ConfigurableEP.class.getName())) {
      checkNonLocalizableAttribute(holder, extension, "displayName", null);

      // ConfigurableEP#children
      for (DomElement nestedConfigurable : DomUtil.getDefinedChildren(extension, true, false)) {
        checkNonLocalizableAttribute(holder, nestedConfigurable, "displayName", null);
      }
    }
    else if (InheritanceUtil.isInheritor(beanClass, SchemeConvertorEPBase.class.getName())) {
      checkNonLocalizableAttribute(holder, extension, "name", null);
    }
    else if (NotificationGroupEP.class.getName().equals(beanClass.getQualifiedName())) {
      if (hasMissingAttribute(extension, "key")) {
        GenericAttributeValue<?> value = DevKitDomUtil.getAttribute(extension, "hideFromSettings");
        if (value == null || !Boolean.parseBoolean(value.getStringValue())) {
          holder.createProblem(extension, DevKitI18nBundle.message("inspections.plugin.xml.i18n.name"),
                               new NotificationGroupI18NQuickFix());
        }
      }
    }
  }
private static void highlightExtension(DomElementAnnotationHolder holder, Extension extension)