mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
forbid inplace introduce inside jsp scripts (IDEA-72167)
This commit is contained in:
+15
-2
@@ -45,6 +45,8 @@ import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.*;
|
||||
import com.intellij.psi.impl.PsiDiamondTypeUtil;
|
||||
import com.intellij.psi.impl.source.jsp.jspJava.JspCodeBlock;
|
||||
import com.intellij.psi.impl.source.jsp.jspJava.JspHolderMethod;
|
||||
import com.intellij.psi.impl.source.resolve.DefaultParameterTypeInferencePolicy;
|
||||
import com.intellij.psi.impl.source.tree.java.ReplaceExpressionUtil;
|
||||
import com.intellij.psi.util.PsiExpressionTrimRenderer;
|
||||
@@ -534,11 +536,11 @@ public abstract class IntroduceVariableBase extends IntroduceHandlerBase {
|
||||
supportProvider != null &&
|
||||
editor.getSettings().isVariableInplaceRenameEnabled() &&
|
||||
supportProvider.isInplaceIntroduceAvailable(expr, nameSuggestionContext) &&
|
||||
!ApplicationManager.getApplication().isUnitTestMode();
|
||||
!ApplicationManager.getApplication().isUnitTestMode() &&
|
||||
!isInJspHolderMethod(expr);
|
||||
final boolean inFinalContext = occurenceManager.isInFinalContext();
|
||||
final InputValidator validator = new InputValidator(this, project, anchorStatementIfAll, anchorStatement, occurenceManager);
|
||||
final TypeSelectorManagerImpl typeSelectorManager = new TypeSelectorManagerImpl(project, originalType, expr, occurrences);
|
||||
|
||||
final boolean[] wasSucceed = new boolean[]{true};
|
||||
final Pass<OccurrencesChooser.ReplaceChoice> callback = new Pass<OccurrencesChooser.ReplaceChoice>() {
|
||||
@Override
|
||||
@@ -599,6 +601,17 @@ public abstract class IntroduceVariableBase extends IntroduceHandlerBase {
|
||||
return wasSucceed[0];
|
||||
}
|
||||
|
||||
private static boolean isInJspHolderMethod(PsiExpression expr) {
|
||||
final PsiElement parent1 = expr.getParent();
|
||||
if (parent1 == null) {
|
||||
return false;
|
||||
}
|
||||
final PsiElement parent2 = parent1.getParent();
|
||||
if (!(parent2 instanceof JspCodeBlock)) return false;
|
||||
final PsiElement parent3 = parent2.getParent();
|
||||
return parent3 instanceof JspHolderMethod;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if write usages found
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user