mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-17 21:15:58 +07:00
hide wrap method return value and remove middleman refactorings when inappropriate
This commit is contained in:
@@ -17,9 +17,12 @@ package com.intellij.refactoring.actions;
|
||||
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiField;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.RefactoringActionHandler;
|
||||
import com.intellij.refactoring.encapsulateFields.EncapsulateFieldsHandler;
|
||||
|
||||
@@ -28,6 +31,19 @@ public class EncapsulateFieldsAction extends BaseRefactoringAction {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file, DataContext context) {
|
||||
final PsiElement psiElement = file.findElementAt(editor.getCaretModel().getOffset());
|
||||
final PsiClass containingClass = PsiTreeUtil.getParentOfType(psiElement, PsiClass.class, false);
|
||||
if (containingClass != null) {
|
||||
final PsiField[] fields = containingClass.getFields();
|
||||
for (PsiField field : fields) {
|
||||
if (isAcceptedField(field)) return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isEnabledOnElements(PsiElement[] elements) {
|
||||
if (elements.length == 1) {
|
||||
return elements[0] instanceof PsiClass && elements[0].getLanguage().isKindOf(JavaLanguage.INSTANCE) || isAcceptedField(elements[0]);
|
||||
|
||||
@@ -16,21 +16,27 @@
|
||||
package com.intellij.refactoring.actions;
|
||||
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiField;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.RefactoringActionHandler;
|
||||
import com.intellij.refactoring.removemiddleman.RemoveMiddlemanHandler;
|
||||
|
||||
public class RemoveMiddlemanAction extends BaseRefactoringAction{
|
||||
|
||||
|
||||
protected RefactoringActionHandler getHandler(DataContext context) {
|
||||
return new RemoveMiddlemanHandler();
|
||||
}
|
||||
return new RemoveMiddlemanHandler();
|
||||
}
|
||||
|
||||
public boolean isAvailableInEditorOnly(){
|
||||
return false;
|
||||
@Override
|
||||
protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file, DataContext context) {
|
||||
return element instanceof PsiField;
|
||||
}
|
||||
|
||||
public boolean isAvailableInEditorOnly() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isEnabledOnElements(PsiElement[] elements) {
|
||||
|
||||
+16
-6
@@ -16,8 +16,8 @@
|
||||
package com.intellij.refactoring.wrapreturnvalue;
|
||||
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.RefactoringActionHandler;
|
||||
import com.intellij.refactoring.actions.BaseRefactoringAction;
|
||||
@@ -32,11 +32,21 @@ public class WrapReturnValueAction extends BaseRefactoringAction{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file, DataContext context) {
|
||||
final PsiMethod psiMethod = PsiTreeUtil.getParentOfType(element, PsiMethod.class, false);
|
||||
if (psiMethod != null && !(psiMethod instanceof PsiCompiledElement)) {
|
||||
final PsiType returnType = psiMethod.getReturnType();
|
||||
return returnType != null && returnType != PsiType.VOID;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isEnabledOnElements(PsiElement[] elements) {
|
||||
if (elements.length != 1) {
|
||||
return false;
|
||||
}
|
||||
final PsiElement element = elements[0];
|
||||
if (elements.length != 1) {
|
||||
return false;
|
||||
}
|
||||
final PsiElement element = elements[0];
|
||||
final PsiMethod containingMethod =
|
||||
PsiTreeUtil.getParentOfType(element, PsiMethod.class, false);
|
||||
return containingMethod != null;
|
||||
|
||||
Reference in New Issue
Block a user