TextRange (@NotNull PsiClass aClass) { if (aClass instanceof PsiEnumConstantInitializer) { return ((PsiEnumConstantInitializer)aClass).getEnumConstant().getNameIdentifier().getTextRange(); } PsiElement psiElement = aClass instanceof PsiAnonymousClass ? ((PsiAnonymousClass)aClass).getBaseClassReference() : aClass.getModifierList() == null ? aClass.getNameIdentifier() : aClass.getModifierList(); if(psiElement == null) return new TextRange(aClass.getTextRange().getStartOffset(), aClass.getTextRange().getStartOffset()); int start = stripAnnotationsFromModifierList(psiElement); PsiElement endElement = aClass instanceof PsiAnonymousClass ? ((PsiAnonymousClass)aClass).getBaseClassReference() : aClass.getImplementsList(); if (endElement == null) endElement = aClass.getNameIdentifier(); TextRange endTextRange = endElement == null ? null : endElement.getTextRange(); int end = endTextRange == null ? start : endTextRange.getEndOffset(); return new TextRange(start, end); }