mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
create from usage: do not suggest to create field in interfaces
This commit is contained in:
+5
@@ -52,6 +52,11 @@ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canBeTargetClass(PsiClass psiClass) {
|
||||
return super.canBeTargetClass(psiClass) && !psiClass.isInterface() && !psiClass.isAnnotationType();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void invokeImpl(final PsiClass targetClass) {
|
||||
final Project project = myReferenceExpression.getProject();
|
||||
|
||||
+6
-2
@@ -347,16 +347,20 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction {
|
||||
}
|
||||
}
|
||||
|
||||
private static void collectSupers(PsiClass psiClass, ArrayList<PsiClass> classes) {
|
||||
private void collectSupers(PsiClass psiClass, ArrayList<PsiClass> classes) {
|
||||
classes.add(psiClass);
|
||||
|
||||
final PsiClass[] supers = psiClass.getSupers();
|
||||
for (PsiClass aSuper : supers) {
|
||||
if (aSuper.getManager().isInProject(aSuper)) {
|
||||
if (canBeTargetClass(aSuper)) {
|
||||
collectSupers(aSuper, classes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean canBeTargetClass(PsiClass psiClass) {
|
||||
return psiClass.getManager().isInProject(psiClass);
|
||||
}
|
||||
|
||||
protected static void startTemplate (@NotNull Editor editor, final Template template, @NotNull final Project project) {
|
||||
startTemplate(editor, template, project, null);
|
||||
|
||||
Reference in New Issue
Block a user