allow override method suggestions on method name only

This commit is contained in:
anna
2012-02-29 12:02:19 +01:00
parent c5da23c777
commit cf78075c97
2 changed files with 19 additions and 1 deletions
@@ -54,7 +54,9 @@ public class ImplementAbstractMethodAction extends BaseIntentionAction {
PsiClass containingClass = method.getContainingClass();
if (containingClass == null) return false;
if (method.hasModifierProperty(PsiModifier.ABSTRACT) || !method.hasModifierProperty(PsiModifier.PRIVATE)) {
final boolean isAbstract = method.hasModifierProperty(PsiModifier.ABSTRACT);
if (isAbstract || !method.hasModifierProperty(PsiModifier.PRIVATE)) {
if (!isAbstract && !isOnIdentifier(file, offset)) return false;
MyElementProcessor processor = new MyElementProcessor(method);
if (containingClass.isEnum()) {
for (PsiField field : containingClass.getFields()) {
@@ -78,6 +80,16 @@ public class ImplementAbstractMethodAction extends BaseIntentionAction {
return false;
}
private static boolean isOnIdentifier(PsiFile file, int offset) {
final PsiElement psiElement = file.findElementAt(offset);
if (psiElement instanceof PsiIdentifier){
if (psiElement.getParent() instanceof PsiMethod) {
return true;
}
}
return false;
}
protected String getIntentionName(final PsiMethod method) {
return method.hasModifierProperty(PsiModifier.ABSTRACT) ?
CodeInsightBundle.message("intention.implement.abstract.method.text", method.getName()) :
@@ -0,0 +1,6 @@
// "Override method 'foo'" "false"
class Test {
protected void foo(){<caret>}
}
class TImple extends Test {}