HighlightingFeature (@Nullable PsiAnnotation annotation) { if (annotation == null) return null; if (!annotation.hasQualifiedName(JDK_INTERNAL_PREVIEW_FEATURE) && !annotation.hasQualifiedName(JDK_INTERNAL_JAVAC_PREVIEW_FEATURE)) { return null; } PsiNameValuePair feature = AnnotationUtil.findDeclaredAttribute(annotation, "feature"); if (feature == null) return null; PsiReferenceExpression referenceExpression = tryCast(feature.getDetachedValue(), PsiReferenceExpression.class); if (referenceExpression == null) return null; PsiEnumConstant enumConstant = tryCast(referenceExpression.resolve(), PsiEnumConstant.class); if (enumConstant == null) return null; return convertFromPreviewFeatureName(enumConstant.getName()); }