mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
wrong level for class in wrong file
This commit is contained in:
+5
-12
@@ -228,21 +228,13 @@ public class HighlightClassUtil {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
static HighlightInfo checkPublicClassInRightFile(PsiKeyword keyword, PsiModifierList psiModifierList) {
|
||||
static HighlightInfo checkPublicClassInRightFile(PsiClass aClass) {
|
||||
// most test case classes are located in wrong files
|
||||
if (ApplicationManager.getApplication().isUnitTestMode()) return null;
|
||||
|
||||
if (new PsiMatcherImpl(keyword)
|
||||
.dot(PsiMatchers.hasText(PsiModifier.PUBLIC))
|
||||
.parent(PsiMatchers.hasClass(PsiModifierList.class))
|
||||
.parent(PsiMatchers.hasClass(PsiClass.class))
|
||||
.parent(PsiMatchers.hasClass(PsiJavaFile.class))
|
||||
.getElement() == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
PsiClass aClass = (PsiClass)keyword.getParent().getParent();
|
||||
PsiJavaFile file = (PsiJavaFile)aClass.getContainingFile();
|
||||
PsiFile containingFile = aClass.getContainingFile();
|
||||
if (!aClass.hasModifierProperty(PsiModifier.PUBLIC) || !(containingFile instanceof PsiJavaFile)) return null;
|
||||
PsiJavaFile file = (PsiJavaFile)containingFile;
|
||||
VirtualFile virtualFile = file.getVirtualFile();
|
||||
HighlightInfo errorResult = null;
|
||||
if (virtualFile != null && !aClass.getName().equals(virtualFile.getNameWithoutExtension())) {
|
||||
@@ -251,6 +243,7 @@ public class HighlightClassUtil {
|
||||
errorResult = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).
|
||||
range(aClass, range.getStartOffset(), range.getEndOffset()).
|
||||
descriptionAndTooltip(message).create();
|
||||
PsiModifierList psiModifierList = aClass.getModifierList();
|
||||
QuickFixAction.registerQuickFixAction(errorResult,
|
||||
QUICK_FIX_FACTORY.createModifierListFix(psiModifierList, PsiModifier.PUBLIC, false, false));
|
||||
PsiClass[] classes = file.getClasses();
|
||||
|
||||
+1
-1
@@ -394,6 +394,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkEnumMustNotBeLocal(aClass));
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(HighlightUtil.checkImplicitThisReferenceBeforeSuper(aClass, myJavaSdkVersion));
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(HighlightClassUtil.checkClassAndPackageConflict(aClass));
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(HighlightClassUtil.checkPublicClassInRightFile(aClass));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -713,7 +714,6 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
|
||||
PsiModifierList psiModifierList = (PsiModifierList)parent;
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(HighlightUtil.checkNotAllowedModifier(keyword, psiModifierList));
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(HighlightUtil.checkIllegalModifierCombination(keyword, psiModifierList));
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(HighlightClassUtil.checkPublicClassInRightFile(keyword, psiModifierList));
|
||||
if (PsiModifier.ABSTRACT.equals(text) && psiModifierList.getParent() instanceof PsiMethod) {
|
||||
if (!myHolder.hasErrorResults()) {
|
||||
myHolder.add(HighlightMethodUtil.checkAbstractMethodInConcreteClass((PsiMethod)psiModifierList.getParent(), keyword));
|
||||
|
||||
Reference in New Issue
Block a user