java intentions 1: make files writable outside write action

This commit is contained in:
peter
2016-11-25 08:44:54 +01:00
parent cb82f33eae
commit bc13ec6e23
69 changed files with 133 additions and 384 deletions
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
import com.intellij.openapi.editor.Editor;
@@ -60,7 +59,6 @@ public class AddAnnotationAttributeNameFix extends LocalQuickFixAndIntentionActi
@Nullable("is null when called from inspection") Editor editor,
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
doFix((PsiNameValuePair)startElement, myName);
}
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.ExceptionUtil;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.generation.surroundWith.SurroundWithUtil;
import com.intellij.codeInsight.intention.impl.BaseIntentionAction;
@@ -46,11 +45,8 @@ public class AddExceptionToCatchFix extends BaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
int offset = editor.getCaretModel().getOffset();
PsiDocumentManager.getInstance(project).commitAllDocuments();
PsiElement element = findElement(file, offset);
if (element == null) return;
@@ -15,22 +15,17 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiModifier;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
public class AddMethodBodyFix implements IntentionAction {
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.AddMethodBodyFix");
private final PsiMethod myMethod;
public AddMethodBodyFix(@NotNull PsiMethod method) {
@@ -59,15 +54,9 @@ public class AddMethodBodyFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(myMethod.getContainingFile())) return;
try {
PsiUtil.setModifierProperty(myMethod, PsiModifier.ABSTRACT, false);
CreateFromUsageUtils.setupMethodBody(myMethod);
CreateFromUsageUtils.setupEditor(myMethod, editor);
} catch (IncorrectOperationException e) {
LOG.error(e);
}
PsiUtil.setModifierProperty(myMethod, PsiModifier.ABSTRACT, false);
CreateFromUsageUtils.setupMethodBody(myMethod);
CreateFromUsageUtils.setupEditor(myMethod, editor);
}
@Override
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.generation.GenerateMembersUtil;
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
@@ -111,7 +110,6 @@ public class AddMethodFix extends LocalQuickFixAndIntentionActionOnPsiElement {
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
final PsiClass myClass = (PsiClass)startElement;
if (!FileModificationService.getInstance().prepareFileForWrite(myClass.getContainingFile())) return;
PsiCodeBlock body;
if (myClass.isInterface() && (body = myMethodPrototype.getBody()) != null) body.delete();
for (String exception : myExceptions) {
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInsight.template.TemplateBuilderImpl;
@@ -33,6 +32,7 @@ import gnu.trove.TObjectIntHashMap;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.Comparator;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -81,11 +81,8 @@ public class AddMissingRequiredAnnotationParametersFix implements IntentionActio
final PsiNameValuePair[] addedParameters = myAnnotation.getParameterList().getAttributes();
final TObjectIntHashMap<String> annotationsOrderMap = getAnnotationsOrderMap();
final SortedSet<Pair<String, PsiAnnotationMemberValue>>
newParameters = new TreeSet<>(
(o1, o2) -> annotationsOrderMap.get(o1.getFirst()) - annotationsOrderMap.get(o2.getFirst()));
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
final SortedSet<Pair<String, PsiAnnotationMemberValue>> newParameters =
new TreeSet<>(Comparator.comparingInt(o -> annotationsOrderMap.get(o.getFirst())));
final boolean order = isAlreadyAddedOrdered(annotationsOrderMap, addedParameters);
if (order) {
@@ -106,7 +103,7 @@ public class AddMissingRequiredAnnotationParametersFix implements IntentionActio
final PsiExpression nullValue = JavaPsiFacade.getElementFactory(project).createExpressionFromText(PsiKeyword.NULL, null);
for (final String misssedParameter : myMissedElements) {
newParameters.add(Pair.<String, PsiAnnotationMemberValue>create(misssedParameter, nullValue));
newParameters.add(Pair.create(misssedParameter, nullValue));
}
TemplateBuilderImpl builder = null;
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -59,7 +58,6 @@ public class AddNewArrayExpressionFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementsForWrite(myInitializer, file)) return;
PsiManager manager = file.getManager();
PsiType type = getType();
PsiElementFactory factory = JavaPsiFacade.getInstance(manager.getProject()).getElementFactory();
@@ -15,15 +15,12 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiTypesUtil;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
@@ -31,7 +28,6 @@ import java.util.ArrayList;
import java.util.List;
public class AddReturnFix implements IntentionAction {
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.AddReturnFix");
private final PsiMethod myMethod;
public AddReturnFix(@NotNull PsiMethod method) {
@@ -61,20 +57,13 @@ public class AddReturnFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(myMethod.getContainingFile())) return;
String value = suggestReturnValue();
PsiElementFactory factory = JavaPsiFacade.getInstance(myMethod.getProject()).getElementFactory();
PsiReturnStatement returnStatement = (PsiReturnStatement) factory.createStatementFromText("return " + value+";", myMethod);
PsiCodeBlock body = myMethod.getBody();
returnStatement = (PsiReturnStatement) body.addBefore(returnStatement, body.getRBrace());
try {
String value = suggestReturnValue();
PsiElementFactory factory = JavaPsiFacade.getInstance(myMethod.getProject()).getElementFactory();
PsiReturnStatement returnStatement = (PsiReturnStatement) factory.createStatementFromText("return " + value+";", myMethod);
PsiCodeBlock body = myMethod.getBody();
returnStatement = (PsiReturnStatement) body.addBefore(returnStatement, body.getRBrace());
MethodReturnTypeFix.selectReturnValueInEditor(returnStatement, editor);
}
catch (IncorrectOperationException e) {
LOG.error(e);
}
MethodReturnTypeFix.selectReturnValueInEditor(returnStatement, editor);
}
private String suggestReturnValue() {
@@ -16,40 +16,26 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.completion.JavaInheritorsGetter;
import com.intellij.codeInsight.completion.PrefixMatcher;
import com.intellij.codeInsight.completion.StatisticsWeigher;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInsight.lookup.ExpressionLookupItem;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.PsiTypeLookupItem;
import com.intellij.codeInsight.template.*;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.CaretModel;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.filters.getters.JavaMembersGetter;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiTypesUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.Consumer;
import com.intellij.util.Function;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.SmartList;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import static com.intellij.util.containers.ContainerUtil.map;
import static com.intellij.util.containers.ContainerUtil.sorted;
public class AddVariableInitializerFix implements IntentionAction {
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.AddReturnFix");
private final PsiVariable myVariable;
@@ -81,7 +67,6 @@ public class AddVariableInitializerFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(myVariable.getContainingFile())) return;
final LookupElement[] suggestedInitializers = suggestInitializer(myVariable);
LOG.assertTrue(suggestedInitializers.length > 0);
LOG.assertTrue(suggestedInitializers[0] instanceof ExpressionLookupItem);
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.daemon.impl.analysis.HighlightControlFlowUtil;
@@ -98,7 +97,6 @@ public class BringVariableIntoScopeFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiFile file) throws IncorrectOperationException {
LOG.assertTrue(myOutOfScopeVariable != null);
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
PsiManager manager = file.getManager();
myOutOfScopeVariable.normalizeDeclaration();
PsiUtil.setModifierProperty(myOutOfScopeVariable, PsiModifier.FINAL, false);
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInspection.util.ChangeToAppendUtil;
@@ -74,7 +73,6 @@ public class ChangeToAppendFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
final PsiExpression appendExpression =
ChangeToAppendUtil.buildAppendExpression(myAssignmentExpression.getLExpression(), myAssignmentExpression.getRExpression());
if (appendExpression == null) return;
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -227,7 +226,6 @@ public class ConvertSwitchToIfIntention implements IntentionAction {
firstBranch, ifStatementText);
}
if (ifStatementText.length() == 0) return;
if (!FileModificationService.getInstance().preparePsiElementForWrite(switchStatement)) return;
final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(project);
final PsiElementFactory factory = psiFacade.getElementFactory();
if (hadSideEffects) {
@@ -17,7 +17,6 @@ package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.CodeInsightUtilCore;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
@@ -46,8 +45,6 @@ public class CreateCastExpressionFromInstanceofAction extends CreateLocalVarFrom
@Override
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
PsiInstanceOfExpression instanceOfExpression = getInstanceOfExpressionAtCaret(editor, file);
assert instanceOfExpression.getContainingFile() == file : instanceOfExpression.getContainingFile() + "; file="+file;
PsiElement decl = createAndInsertCast(instanceOfExpression, editor, file);
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.CodeInsightUtilCore;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.PsiEquivalenceUtil;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.impl.BaseIntentionAction;
@@ -197,8 +196,6 @@ public class CreateLocalVarFromInstanceofAction extends BaseIntentionAction {
@Override
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
PsiInstanceOfExpression instanceOfExpression = getInstanceOfExpressionAtCaret(editor, file);
assert instanceOfExpression.getContainingFile() == file : instanceOfExpression.getContainingFile() + "; file="+file;
try {
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.ExpectedTypeInfo;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
import com.intellij.openapi.editor.Editor;
@@ -26,7 +25,6 @@ import com.intellij.psi.*;
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
import com.intellij.psi.util.PsiFormatUtil;
import com.intellij.psi.util.PsiFormatUtilBase;
import com.intellij.util.Function;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NonNls;
@@ -72,16 +70,10 @@ public class CreateMethodQuickFix extends LocalQuickFixAndIntentionActionOnPsiEl
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
PsiClass myTargetClass = (PsiClass)startElement;
if (!FileModificationService.getInstance().preparePsiElementForWrite(myTargetClass.getContainingFile())) return;
PsiMethod method = createMethod(myTargetClass);
List<Pair<PsiExpression, PsiType>> arguments =
ContainerUtil.map2List(method.getParameterList().getParameters(), new Function<PsiParameter, Pair<PsiExpression, PsiType>>() {
@Override
public Pair<PsiExpression, PsiType> fun(PsiParameter psiParameter) {
return Pair.create(null, psiParameter.getType());
}
});
ContainerUtil.map2List(method.getParameterList().getParameters(), psiParameter -> Pair.create(null, psiParameter.getType()));
method = (PsiMethod)JavaCodeStyleManager.getInstance(project).shortenClassReferences(myTargetClass.add(method));
CreateMethodFromUsageFix.doCreate(myTargetClass, method, arguments, PsiSubstitutor.EMPTY, ExpectedTypeInfo.EMPTY_ARRAY, method);
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.daemon.impl.analysis.JavaHighlightUtil;
import com.intellij.codeInsight.intention.IntentionAction;
@@ -50,8 +49,6 @@ public class DeleteCatchFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(myCatchParameter.getContainingFile())) return;
final PsiTryStatement tryStatement = ((PsiCatchSection)myCatchParameter.getDeclarationScope()).getTryStatement();
if (tryStatement.getCatchBlocks().length == 1 && tryStatement.getFinallyBlock() == null && tryStatement.getResourceList() == null) {
// unwrap entire try statement
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -55,7 +54,6 @@ public class DeleteMethodBodyFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(myMethod)) return;
final PsiCodeBlock body = myMethod.getBody();
assert body != null;
body.delete();
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.daemon.impl.analysis.JavaHighlightUtil;
import com.intellij.codeInsight.intention.IntentionAction;
@@ -55,8 +54,6 @@ public class DeleteMultiCatchFix implements IntentionAction {
@Override
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(myTypeElement.getContainingFile())) return;
final PsiElement parentType = myTypeElement.getParent();
if (!(parentType instanceof PsiTypeElement)) return;
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.daemon.impl.analysis.JavaHighlightUtil;
import com.intellij.codeInsight.intention.IntentionAction;
@@ -81,7 +80,6 @@ public class GeneralizeCatchFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(myElement.getContainingFile())) return;
PsiElementFactory factory = JavaPsiFacade.getInstance(myElement.getProject()).getElementFactory();
PsiTypeElement type = factory.createTypeElement(myUnhandledException);
myCatchParameter.getTypeElement().replace(type);
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.generation.OverrideImplementUtil;
import com.intellij.codeInsight.generation.PsiMethodMember;
import com.intellij.ide.util.MemberChooser;
@@ -73,8 +72,7 @@ public class ImplementAbstractClassMethodsFix extends ImplementMethodsFix {
@Nullable("is null when called from inspection") final Editor editor,
@NotNull final PsiElement startElement,
@NotNull PsiElement endElement) {
final PsiFile containingFile = startElement.getContainingFile();
if (editor == null || !FileModificationService.getInstance().prepareFileForWrite(containingFile)) return;
if (editor == null) return;
PsiJavaCodeReferenceElement classReference = ((PsiNewExpression)startElement).getClassReference();
if (classReference == null) return;
final PsiClass psiClass = (PsiClass)classReference.resolve();
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -53,7 +52,6 @@ public class InsertNewFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(myMethodCall.getContainingFile())) return;
PsiElementFactory factory = JavaPsiFacade.getInstance(myMethodCall.getProject()).getElementFactory();
PsiNewExpression newExpression = (PsiNewExpression)factory.createExpressionFromText("new X()",null);
@@ -15,23 +15,18 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.HighPriorityAction;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.command.undo.UndoUtil;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiMatcherImpl;
import com.intellij.psi.util.PsiMatchers;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
public class InsertSuperFix implements IntentionAction, HighPriorityAction {
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.InsertSuperFix");
private final PsiMethod myConstructor;
public InsertSuperFix(@NotNull PsiMethod constructor) {
@@ -61,27 +56,21 @@ public class InsertSuperFix implements IntentionAction, HighPriorityAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(myConstructor.getContainingFile())) return;
try {
PsiStatement superCall =
JavaPsiFacade.getInstance(myConstructor.getProject()).getElementFactory().createStatementFromText("super();",null);
PsiStatement superCall =
JavaPsiFacade.getInstance(myConstructor.getProject()).getElementFactory().createStatementFromText("super();",null);
PsiCodeBlock body = myConstructor.getBody();
PsiJavaToken lBrace = body.getLBrace();
body.addAfter(superCall, lBrace);
lBrace = (PsiJavaToken) new PsiMatcherImpl(body)
.firstChild(PsiMatchers.hasClass(PsiExpressionStatement.class))
.firstChild(PsiMatchers.hasClass(PsiMethodCallExpression.class))
.firstChild(PsiMatchers.hasClass(PsiExpressionList.class))
.firstChild(PsiMatchers.hasClass(PsiJavaToken.class))
.dot(PsiMatchers.hasText("("))
.getElement();
editor.getCaretModel().moveToOffset(lBrace.getTextOffset()+1);
UndoUtil.markPsiFileForUndo(file);
}
catch (IncorrectOperationException e) {
LOG.error(e);
}
PsiCodeBlock body = myConstructor.getBody();
PsiJavaToken lBrace = body.getLBrace();
body.addAfter(superCall, lBrace);
lBrace = (PsiJavaToken) new PsiMatcherImpl(body)
.firstChild(PsiMatchers.hasClass(PsiExpressionStatement.class))
.firstChild(PsiMatchers.hasClass(PsiMethodCallExpression.class))
.firstChild(PsiMatchers.hasClass(PsiExpressionList.class))
.firstChild(PsiMatchers.hasClass(PsiJavaToken.class))
.dot(PsiMatchers.hasText("("))
.getElement();
editor.getCaretModel().moveToOffset(lBrace.getTextOffset()+1);
UndoUtil.markPsiFileForUndo(file);
}
@Override
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
import com.intellij.openapi.command.undo.UndoUtil;
@@ -69,7 +68,6 @@ public class MakeClassInterfaceFix extends LocalQuickFixAndIntentionActionOnPsiE
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
final PsiClass myClass = (PsiClass)startElement;
if (!FileModificationService.getInstance().preparePsiElementForWrite(myClass)) return;
try {
final PsiReferenceList extendsList = myMakeInterface? myClass.getExtendsList() : myClass.getImplementsList();
final PsiReferenceList implementsList = myMakeInterface? myClass.getImplementsList() : myClass.getExtendsList();
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -54,7 +53,6 @@ public class MakeMethodConstructorFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(myMethod)) return;
myMethod.getReturnTypeElement().delete();
}
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -54,7 +53,6 @@ public class MakeVarargParameterLastFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(myParameter)) return;
myParameter.getParent().add(myParameter);
myParameter.delete();
}
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.daemon.impl.analysis.HighlightUtil;
import com.intellij.openapi.command.undo.UndoUtil;
@@ -57,7 +56,6 @@ public class MoveBoundClassToFrontFix extends ExtendsListFix {
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
final PsiClass myClass = (PsiClass)startElement;
if (!FileModificationService.getInstance().prepareFileForWrite(myClass.getContainingFile())) return;
PsiReferenceList extendsList = myClass.getExtendsList();
if (extendsList == null) return;
try {
@@ -15,23 +15,18 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.daemon.impl.analysis.JavaHighlightUtil;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiCatchSection;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiTryStatement;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
public class MoveCatchUpFix implements IntentionAction {
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.DeleteCatchFix");
private final PsiCatchSection myCatchSection;
private final PsiCatchSection myMoveBeforeSection;
@@ -70,15 +65,9 @@ public class MoveCatchUpFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(myCatchSection.getContainingFile())) return;
try {
PsiTryStatement statement = myCatchSection.getTryStatement();
statement.addBefore(myCatchSection, myMoveBeforeSection);
myCatchSection.delete();
}
catch (IncorrectOperationException e) {
LOG.error(e);
}
PsiTryStatement statement = myCatchSection.getTryStatement();
statement.addBefore(myCatchSection, myMoveBeforeSection);
myCatchSection.delete();
}
@Override
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.diagnostic.Logger;
@@ -70,22 +69,15 @@ public class MoveClassToSeparateFileFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, @Nullable Editor editor, @NotNull PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(myClass.getContainingFile())) return;
PsiDirectory dir = file.getContainingDirectory();
try{
String name = myClass.getName();
JavaDirectoryService directoryService = JavaDirectoryService.getInstance();
PsiClass placeHolder = myClass.isInterface() ? directoryService.createInterface(dir, name) : directoryService.createClass(dir, name);
PsiClass newClass = (PsiClass)placeHolder.replace(myClass);
myClass.delete();
String name = myClass.getName();
JavaDirectoryService directoryService = JavaDirectoryService.getInstance();
PsiClass placeHolder = myClass.isInterface() ? directoryService.createInterface(dir, name) : directoryService.createClass(dir, name);
PsiClass newClass = (PsiClass)placeHolder.replace(myClass);
myClass.delete();
OpenFileDescriptor descriptor = new OpenFileDescriptor(project, newClass.getContainingFile().getVirtualFile(), newClass.getTextOffset());
FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
}
catch(IncorrectOperationException e){
LOG.error(e);
}
OpenFileDescriptor descriptor = new OpenFileDescriptor(project, newClass.getContainingFile().getVirtualFile(), newClass.getTextOffset());
FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
}
@Override
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -84,7 +83,7 @@ public class NegationBroadScopeFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!isAvailable(project, editor, file) || !FileModificationService.getInstance().preparePsiElementForWrite(myPrefixExpression)) return;
if (!isAvailable(project, editor, file)) return;
PsiExpression operand = myPrefixExpression.getOperand();
PsiElement unnegated = myPrefixExpression.replace(operand);
PsiElement parent = unnegated.getParent();
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.diagnostic.Logger;
@@ -24,7 +23,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiJavaFile;
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
public class OptimizeImportsFix implements IntentionAction{
@@ -50,14 +48,8 @@ public class OptimizeImportsFix implements IntentionAction{
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
if (!(file instanceof PsiJavaFile)) return;
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
try{
JavaCodeStyleManager.getInstance(project).optimizeImports(file);
}
catch(IncorrectOperationException e){
LOG.error(e);
}
JavaCodeStyleManager.getInstance(project).optimizeImports(file);
}
@Override
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -63,7 +62,6 @@ public class RemoveNewQualifierFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(expression.getContainingFile())) return;
PsiJavaCodeReferenceElement classReference = expression.getClassReference();
expression.getQualifier().delete();
if (aClass != null && classReference != null) {
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -52,7 +51,6 @@ public class RemoveParameterListFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
final PsiMethod emptyMethod = JavaPsiFacade.getElementFactory(project).createMethodFromText("void foo(){}", myMethod);
myMethod.getParameterList().replace(emptyMethod.getParameterList());
}
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -64,7 +63,6 @@ public class RemoveQualifierFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
myQualifier.delete();
myExpression.bindToElement(myResolved);
}
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.diagnostic.Logger;
@@ -92,7 +91,6 @@ public class RemoveRedundantElseAction extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
PsiIfStatement ifStatement = (PsiIfStatement)element.getParent();
LOG.assertTrue(ifStatement != null && ifStatement.getElseBranch() != null);
PsiStatement elseBranch = ifStatement.getElseBranch();
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.HighPriorityAction;
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
import com.intellij.openapi.diagnostic.Logger;
@@ -68,7 +67,7 @@ public class RemoveTypeArgumentsFix extends LocalQuickFixAndIntentionActionOnPsi
final PsiJavaCodeReferenceElement referenceElement = typeElement.getInnermostComponentReferenceElement();
if (referenceElement != null) {
final PsiReferenceParameterList parameterList = referenceElement.getParameterList();
if (parameterList != null && FileModificationService.getInstance().preparePsiElementForWrite(parameterList)) {
if (parameterList != null) {
parameterList.delete();
}
}
@@ -24,7 +24,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInsight.lookup.LookupElement;
@@ -147,7 +146,6 @@ public class RenameWrongRefFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, final Editor editor, PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
PsiReferenceExpression[] refs = CreateFromUsageUtils.collectExpressions(myRefExpr, PsiMember.class, PsiFile.class);
PsiElement element = PsiTreeUtil.getParentOfType(myRefExpr, PsiMember.class, PsiFile.class);
LookupElement[] items = collectItems();
@@ -20,7 +20,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.module.Module;
@@ -95,7 +94,6 @@ public class ReplaceAddAllArrayToCollectionFix implements IntentionAction {
@Override
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(project).getElementFactory();
final PsiExpression toReplace = elementFactory.createExpressionFromText(getCollectionsMethodCall(), myMethodCall);
JavaCodeStyleManager.getInstance(project).shortenClassReferences(myMethodCall.replace(toReplace));
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -42,7 +41,6 @@ public class ReplaceInaccessibleFieldWithGetterSetterFix extends LocalQuickFixAn
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
PsiReferenceExpression place = (PsiReferenceExpression)startElement;
if (!FileModificationService.getInstance().preparePsiElementForWrite(place)) return;
String qualifier = null;
final PsiExpression qualifierExpression = place.getQualifierExpression();
if (qualifierExpression != null) {
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -64,7 +63,6 @@ public class ReplaceIteratorForEachLoopWithIteratorForLoopFix implements Intenti
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
final PsiExpression iteratedValue = myStatement.getIteratedValue();
if (iteratedValue == null) {
return;
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
@@ -86,7 +85,6 @@ public class ReplacePrimitiveWithBoxedTypeAction extends LocalQuickFixAndIntenti
: PsiWildcardType.createSuper(startElement.getManager(), boxedBound);
}
LOG.assertTrue(boxedType != null);
if(!FileModificationService.getInstance().prepareFileForWrite(file)) return;
startElement.replace(JavaPsiFacade.getElementFactory(project).createTypeElement(boxedType));
}
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -86,7 +85,6 @@ public class ReplaceWithListAccessFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
final PsiExpression arrayExpression = myArrayAccessExpression.getArrayExpression();
final PsiExpression indexExpression = myArrayAccessExpression.getIndexExpression();
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.CodeInsightUtil;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -68,8 +67,6 @@ public class ReuseVariableDeclarationFix implements IntentionAction {
final PsiVariable refVariable = findPreviousVariable();
if (refVariable == null) return;
if (!CodeInsightUtil.preparePsiElementsForWrite(myVariable, refVariable)) return;
final PsiExpression initializer = myVariable.getInitializer();
if (initializer == null) {
myVariable.delete();
@@ -20,7 +20,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.TargetElementUtil;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -119,7 +118,6 @@ public class SurroundWithArrayFix extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(project).getElementFactory();
final PsiExpression expression = getExpression(element);
assert expression != null;
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -47,7 +46,6 @@ public class SurroundWithQuotesAnnotationParameterValueFix implements IntentionA
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
String newText = myValue.getText();
newText = StringUtil.stripQuotesAroundValue(newText);
newText = "\"" + newText + "\"";
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.generation.surroundWith.JavaWithTryCatchSurrounder;
import com.intellij.codeInsight.intention.IntentionAction;
@@ -73,8 +72,6 @@ public class SurroundWithTryCatchFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
int col = editor.getCaretModel().getLogicalPosition().column;
int line = editor.getCaretModel().getLogicalPosition().line;
editor.getCaretModel().moveToLogicalPosition(new LogicalPosition(0, 0));
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.QuickFixBundle;
import com.intellij.codeInsight.daemon.impl.HighlightInfo;
import com.intellij.codeInsight.daemon.impl.analysis.HighlightControlFlowUtil;
@@ -102,7 +101,6 @@ public class VariableAccessFromInnerClassFix implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
if (!FileModificationService.getInstance().preparePsiElementsForWrite(myContext, myVariable)) return;
try {
switch (myFixType) {
case MAKE_FINAL:
@@ -94,7 +94,6 @@ public class VariableTypeFix extends LocalQuickFixAndIntentionActionOnPsiElement
@NotNull PsiElement endElement) {
final PsiVariable myVariable = (PsiVariable)startElement;
if (changeMethodSignatureIfNeeded(myVariable)) return;
if (!FileModificationService.getInstance().prepareFileForWrite(myVariable.getContainingFile())) return;
new WriteCommandAction.Simple(project, getText(), file) {
@Override
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
@@ -63,16 +62,9 @@ public class AssignFieldFromParameterAction extends BaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
final PsiParameter myParameter = FieldFromParameterUtils.findParameterAtCursor(file, editor);
if (!FileModificationService.getInstance().prepareFileForWrite(myParameter.getContainingFile())) return;
IdeDocumentHistory.getInstance(project).includeCurrentPlaceAsChangePlace();
try {
PsiField field = findFieldToAssign(project, myParameter);
if (field != null) addFieldAssignmentStatement(project, field, myParameter, editor);
}
catch (IncorrectOperationException e) {
LOG.error(e);
}
PsiField field = findFieldToAssign(project, myParameter);
if (field != null) addFieldAssignmentStatement(project, field, myParameter, editor);
}
@Nullable
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.impl.quickfix.CreateFromUsageUtils;
import com.intellij.codeInsight.highlighting.HighlightManager;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
@@ -70,8 +69,6 @@ public abstract class BaseMoveInitializerToMethodAction extends PsiElementBaseIn
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiField field = PsiTreeUtil.getParentOfType(element, PsiField.class);
assert field != null;
final PsiClass aClass = field.getContainingClass();
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -78,7 +77,6 @@ public class BreakStringOnLineBreaksIntentionAction extends PsiElementBaseIntent
return;
}
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiElementFactory factory = JavaPsiFacade.getElementFactory(project);
token.replace(factory.createExpressionFromText(breakOnLineBreaks(text), element));
}
@@ -17,7 +17,6 @@ package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.AnnotationUtil;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -53,7 +52,6 @@ public class ConcatenationToMessageFormatAction implements IntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
final PsiElement element = findElementAtCaret(editor, file);
PsiPolyadicExpression concatenation = getEnclosingLiteralConcatenation(element);
if (concatenation == null) return;
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiElement;
@@ -67,8 +66,6 @@ public class ConvertAbsolutePathToRelativeIntentionAction extends BaseIntentionA
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
final PsiReference reference = file.findReferenceAt(editor.getCaretModel().getOffset());
final FileReference fileReference = reference == null ? null : FileReference.findFileReference(reference);
if (fileReference != null) {
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
@@ -65,8 +64,6 @@ public class ConvertColorRepresentationIntentionAction extends BaseColorIntentio
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiNewExpression expression = PsiTreeUtil.getParentOfType(element, PsiNewExpression.class, false);
if (expression == null) {
return;
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.BaseElementAtCaretIntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -35,9 +34,6 @@ public class ConvertCompareToToEqualsIntention extends BaseElementAtCaretIntenti
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementsForWrite(element)) {
return;
}
final CompareToResult compareToResult = CompareToResult.findCompareTo(element);
assert compareToResult != null;
final PsiExpression qualifier = compareToResult.getQualifier();
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.javaee.ExternalResourceManager;
import com.intellij.lang.java.JavaLanguage;
@@ -77,7 +76,6 @@ public class ConvertToBasicLatinAction extends PsiElementBaseIntentionAction {
if (pair == null) return;
final PsiElement workElement = pair.first;
final Handler handler = pair.second;
if (!FileModificationService.getInstance().preparePsiElementForWrite(workElement)) return;
final String newText = handler.processText(workElement);
final PsiElement newElement = handler.createReplacement(workElement, newText);
workElement.replace(newElement);
@@ -15,9 +15,7 @@
*/
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.BaseElementAtCaretIntentionAction;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
@@ -36,9 +34,6 @@ public class CreateSwitchIntention extends BaseElementAtCaretIntentionAction {
@Override
public void invoke(@NotNull final Project project, final Editor editor, @NotNull final PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementsForWrite(element)) {
return;
}
final PsiExpressionStatement expressionStatement = resolveExpressionStatement(element);
final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(project).getElementFactory();
PsiSwitchStatement switchStatement = (PsiSwitchStatement)elementFactory
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.Result;
@@ -63,8 +62,6 @@ public class ExpandStaticImportAction extends PsiElementBaseIntentionAction {
}
public void invoke(final Project project, final PsiFile file, final Editor editor, PsiElement element) {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiJavaCodeReferenceElement refExpr = (PsiJavaCodeReferenceElement)element.getParent();
final PsiImportStaticStatement staticImport = (PsiImportStaticStatement)refExpr.advancedResolve(true).getCurrentFileResolveScope();
final List<PsiJavaCodeReferenceElement> expressionToExpand = collectReferencesThrough(file, refExpr, staticImport);
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -83,8 +82,6 @@ public class ExtractIfConditionAction extends PsiElementBaseIntentionAction {
return;
}
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
ifStatement.replace(codeStyleManager.reformat(newIfStatement));
}
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
@@ -206,8 +205,6 @@ public class InlineStreamMapAction extends PsiElementBaseIntentionAction {
String newName = translateName(mapCall, nextCall);
if(newName == null) return;
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
PsiLambdaExpression previousLambda = getLambda(mapCall);
LOG.assertTrue(previousLambda != null);
@@ -17,7 +17,6 @@ package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.CodeInsightServicesUtil;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
@@ -76,8 +75,6 @@ public class InvertIfConditionAction extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
PsiIfStatement ifStatement = PsiTreeUtil.getParentOfType(element, PsiIfStatement.class);
LOG.assertTrue(ifStatement != null);
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
@@ -113,75 +112,68 @@ public class MergeFilterChainAction extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
try {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiMethodCallExpression filterCall = PsiTreeUtil.getParentOfType(element, PsiMethodCallExpression.class);
LOG.assertTrue(filterCall != null);
final PsiMethodCallExpression filterCall = PsiTreeUtil.getParentOfType(element, PsiMethodCallExpression.class);
LOG.assertTrue(filterCall != null);
final PsiMethodCallExpression filterToMerge = getFilterToMerge(filterCall);
LOG.assertTrue(filterToMerge != null);
final PsiMethodCallExpression filterToMerge = getFilterToMerge(filterCall);
LOG.assertTrue(filterToMerge != null);
final PsiMethodCallExpression callToStay = filterCall.getTextLength() < filterToMerge.getTextLength() ? filterCall : filterToMerge;
final PsiMethodCallExpression callToEliminate = callToStay == filterCall ? filterToMerge : filterCall;
final PsiMethodCallExpression callToStay = filterCall.getTextLength() < filterToMerge.getTextLength() ? filterCall : filterToMerge;
final PsiMethodCallExpression callToEliminate = callToStay == filterCall ? filterToMerge : filterCall;
String resultingOperation = callToEliminate.getMethodExpression().getReferenceName();
LOG.assertTrue(resultingOperation != null);
String resultingOperation = callToEliminate.getMethodExpression().getReferenceName();
LOG.assertTrue(resultingOperation != null);
final PsiLambdaExpression targetLambda = getLambda(callToStay);
LOG.assertTrue(targetLambda != null, callToStay);
final PsiParameter[] parameters = targetLambda.getParameterList().getParameters();
final String name = parameters.length > 0 ? parameters[0].getName() : null;
final PsiLambdaExpression targetLambda = getLambda(callToStay);
LOG.assertTrue(targetLambda != null, callToStay);
final PsiParameter[] parameters = targetLambda.getParameterList().getParameters();
final String name = parameters.length > 0 ? parameters[0].getName() : null;
final PsiLambdaExpression sourceLambda = getLambda(callToEliminate);
LOG.assertTrue(sourceLambda != null, callToEliminate);
if (name != null) {
final PsiParameter[] sourceLambdaParams = sourceLambda.getParameterList().getParameters();
if (sourceLambdaParams.length > 0 && !name.equals(sourceLambdaParams[0].getName())) {
for (PsiReference reference : ReferencesSearch.search(sourceLambdaParams[0]).findAll()) {
final PsiElement referenceElement = reference.getElement();
if (referenceElement instanceof PsiReferenceExpression) {
((PsiReferenceExpression)referenceElement).handleElementRename(name);
}
final PsiLambdaExpression sourceLambda = getLambda(callToEliminate);
LOG.assertTrue(sourceLambda != null, callToEliminate);
if (name != null) {
final PsiParameter[] sourceLambdaParams = sourceLambda.getParameterList().getParameters();
if (sourceLambdaParams.length > 0 && !name.equals(sourceLambdaParams[0].getName())) {
for (PsiReference reference : ReferencesSearch.search(sourceLambdaParams[0]).findAll()) {
final PsiElement referenceElement = reference.getElement();
if (referenceElement instanceof PsiReferenceExpression) {
((PsiReferenceExpression)referenceElement).handleElementRename(name);
}
}
}
PsiElementFactory factory = JavaPsiFacade.getElementFactory(project);
PsiElement nameElement = callToStay.getMethodExpression().getReferenceNameElement();
LOG.assertTrue(nameElement != null);
if(!resultingOperation.equals(nameElement.getText())) {
nameElement.replace(factory.createIdentifier(resultingOperation));
}
PsiElement targetBody = targetLambda.getBody();
LOG.assertTrue(targetBody instanceof PsiExpression);
final PsiElement sourceLambdaBody = sourceLambda.getBody();
LOG.assertTrue(sourceLambdaBody instanceof PsiExpression);
final PsiExpression compoundExpression = factory
.createExpressionFromText(
ParenthesesUtils.getText((PsiExpression)targetBody, ParenthesesUtils.OR_PRECEDENCE) + " && " +
ParenthesesUtils.getText((PsiExpression)sourceLambdaBody, ParenthesesUtils.OR_PRECEDENCE), sourceLambda);
targetBody = targetBody.replace(compoundExpression);
CodeStyleManager.getInstance(project).reformat(targetBody);
final PsiExpression qualifierExpression = callToEliminate.getMethodExpression().getQualifierExpression();
LOG.assertTrue(qualifierExpression != null, callToEliminate);
final Collection<PsiComment> comments = PsiTreeUtil.findChildrenOfType(callToEliminate, PsiComment.class);
for (PsiComment comment : comments) {
final TextRange commentRange = comment.getTextRange();
if (!sourceLambdaBody.getTextRange().contains(commentRange) &&
!qualifierExpression.getTextRange().contains(commentRange)) {
targetBody.add(comment);
}
}
callToEliminate.replace(qualifierExpression);
}
catch (IncorrectOperationException e) {
LOG.error(e);
PsiElementFactory factory = JavaPsiFacade.getElementFactory(project);
PsiElement nameElement = callToStay.getMethodExpression().getReferenceNameElement();
LOG.assertTrue(nameElement != null);
if(!resultingOperation.equals(nameElement.getText())) {
nameElement.replace(factory.createIdentifier(resultingOperation));
}
PsiElement targetBody = targetLambda.getBody();
LOG.assertTrue(targetBody instanceof PsiExpression);
final PsiElement sourceLambdaBody = sourceLambda.getBody();
LOG.assertTrue(sourceLambdaBody instanceof PsiExpression);
final PsiExpression compoundExpression = factory
.createExpressionFromText(
ParenthesesUtils.getText((PsiExpression)targetBody, ParenthesesUtils.OR_PRECEDENCE) + " && " +
ParenthesesUtils.getText((PsiExpression)sourceLambdaBody, ParenthesesUtils.OR_PRECEDENCE), sourceLambda);
targetBody = targetBody.replace(compoundExpression);
CodeStyleManager.getInstance(project).reformat(targetBody);
final PsiExpression qualifierExpression = callToEliminate.getMethodExpression().getQualifierExpression();
LOG.assertTrue(qualifierExpression != null, callToEliminate);
final Collection<PsiComment> comments = PsiTreeUtil.findChildrenOfType(callToEliminate, PsiComment.class);
for (PsiComment comment : comments) {
final TextRange commentRange = comment.getTextRange();
if (!sourceLambdaBody.getTextRange().contains(commentRange) &&
!qualifierExpression.getTextRange().contains(commentRange)) {
targetBody.add(comment);
}
}
callToEliminate.replace(qualifierExpression);
}
}
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.PsiEquivalenceUtil;
import com.intellij.codeInsight.highlighting.HighlightManager;
import com.intellij.openapi.editor.Editor;
@@ -174,7 +173,6 @@ public class MoveFieldAssignmentToInitializerAction extends BaseIntentionAction
if (assignment == null) return;
PsiField field = getAssignedField(assignment);
if (field == null) return;
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
List<PsiAssignmentExpression> assignments = new ArrayList<>();
if (!isInitializedWithSameExpression(field, assignment, assignments)) return;
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.PsiEquivalenceUtil;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -52,8 +51,6 @@ public class PushConditionInCallAction extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiConditionalExpression conditionalExpression = PsiTreeUtil.getParentOfType(element, PsiConditionalExpression.class);
if (conditionalExpression == null) return;
PsiExpression thenExpression = conditionalExpression.getThenExpression();
@@ -17,7 +17,6 @@ package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.CodeInsightUtil;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.progress.ProgressIndicatorProvider;
@@ -71,7 +70,7 @@ public class ReplaceCastWithVariableAction extends PsiElementBaseIntentionAction
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
final PsiTypeCastExpression typeCastExpression = PsiTreeUtil.getParentOfType(element, PsiTypeCastExpression.class);
if (typeCastExpression == null || !FileModificationService.getInstance().preparePsiElementForWrite(element)) {
if (typeCastExpression == null) {
return;
}
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.daemon.impl.quickfix.SimplifyBooleanExpressionFix;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.openapi.editor.Editor;
@@ -60,7 +59,6 @@ public class SimplifyBooleanExpressionAction implements IntentionAction{
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
PsiExpression expression = getExpressionToSimplify(editor, file);
SimplifyBooleanExpressionFix.simplifyExpression(expression);
}
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.editor.Editor;
@@ -94,8 +93,6 @@ public class SplitDeclarationAction extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiDeclarationStatement decl = PsiTreeUtil.getParentOfType(element, PsiDeclarationStatement.class);
final PsiManager psiManager = PsiManager.getInstance(project);
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
@@ -70,49 +69,42 @@ public class SplitFilterAction extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
try {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiJavaToken token = (PsiJavaToken)element;
final PsiPolyadicExpression expression = SplitConditionUtil.findCondition(element, true, false);
final PsiJavaToken token = (PsiJavaToken)element;
final PsiPolyadicExpression expression = SplitConditionUtil.findCondition(element, true, false);
final PsiLambdaExpression lambdaExpression = PsiTreeUtil.getParentOfType(expression, PsiLambdaExpression.class);
LOG.assertTrue(lambdaExpression != null);
final String lambdaParameterName = lambdaExpression.getParameterList().getParameters()[0].getName();
final PsiLambdaExpression lambdaExpression = PsiTreeUtil.getParentOfType(expression, PsiLambdaExpression.class);
LOG.assertTrue(lambdaExpression != null);
final String lambdaParameterName = lambdaExpression.getParameterList().getParameters()[0].getName();
final PsiMethodCallExpression methodCallExpression = PsiTreeUtil.getParentOfType(expression, PsiMethodCallExpression.class);
LOG.assertTrue(methodCallExpression != null, expression);
final PsiMethodCallExpression methodCallExpression = PsiTreeUtil.getParentOfType(expression, PsiMethodCallExpression.class);
LOG.assertTrue(methodCallExpression != null, expression);
PsiExpression lOperand = getLOperands(expression, token);
PsiExpression rOperand = getROperands(expression, token);
PsiExpression lOperand = getLOperands(expression, token);
PsiExpression rOperand = getROperands(expression, token);
final Collection<PsiComment> comments = PsiTreeUtil.findChildrenOfType(expression, PsiComment.class);
final Collection<PsiComment> comments = PsiTreeUtil.findChildrenOfType(expression, PsiComment.class);
final PsiMethodCallExpression chainedCall =
(PsiMethodCallExpression)JavaPsiFacade.getElementFactory(project).createExpressionFromText("a.filter(" + lambdaParameterName + " -> x)", expression);
final PsiExpression argExpression = chainedCall.getArgumentList().getExpressions()[0];
final PsiElement rReplaced = ((PsiLambdaExpression)argExpression).getBody().replace(rOperand);
final PsiMethodCallExpression chainedCall =
(PsiMethodCallExpression)JavaPsiFacade.getElementFactory(project).createExpressionFromText("a.filter(" + lambdaParameterName + " -> x)", expression);
final PsiExpression argExpression = chainedCall.getArgumentList().getExpressions()[0];
final PsiElement rReplaced = ((PsiLambdaExpression)argExpression).getBody().replace(rOperand);
final PsiExpression compoundArg = methodCallExpression.getArgumentList().getExpressions()[0];
final PsiExpression compoundArg = methodCallExpression.getArgumentList().getExpressions()[0];
final int separatorOffset = token.getTextOffset();
for (PsiComment comment : comments) {
if (comment.getTextOffset() < separatorOffset) {
compoundArg.getParent().add(comment);
}
else {
rReplaced.getParent().add(comment);
}
final int separatorOffset = token.getTextOffset();
for (PsiComment comment : comments) {
if (comment.getTextOffset() < separatorOffset) {
compoundArg.getParent().add(comment);
}
else {
rReplaced.getParent().add(comment);
}
((PsiLambdaExpression)compoundArg).getBody().replace(lOperand);
chainedCall.getMethodExpression().getQualifierExpression().replace(methodCallExpression);
methodCallExpression.replace(chainedCall);
}
catch (IncorrectOperationException e) {
LOG.error(e);
}
((PsiLambdaExpression)compoundArg).getBody().replace(lOperand);
chainedCall.getMethodExpression().getQualifierExpression().replace(methodCallExpression);
methodCallExpression.replace(chainedCall);
}
}
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
@@ -62,26 +61,19 @@ public class SplitIfAction extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
try {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
PsiJavaToken token = (PsiJavaToken)element;
LOG.assertTrue(token.getTokenType() == JavaTokenType.ANDAND || token.getTokenType() == JavaTokenType.OROR);
PsiJavaToken token = (PsiJavaToken)element;
LOG.assertTrue(token.getTokenType() == JavaTokenType.ANDAND || token.getTokenType() == JavaTokenType.OROR);
PsiPolyadicExpression expression = (PsiPolyadicExpression)token.getParent();
PsiIfStatement ifStatement = PsiTreeUtil.getParentOfType(expression, PsiIfStatement.class);
PsiPolyadicExpression expression = (PsiPolyadicExpression)token.getParent();
PsiIfStatement ifStatement = PsiTreeUtil.getParentOfType(expression, PsiIfStatement.class);
LOG.assertTrue(PsiTreeUtil.isAncestor(ifStatement.getCondition(), expression, false));
LOG.assertTrue(PsiTreeUtil.isAncestor(ifStatement.getCondition(), expression, false));
if (token.getTokenType() == JavaTokenType.ANDAND) {
doAndSplit(ifStatement, expression, token, editor);
}
else if (token.getTokenType() == JavaTokenType.OROR) {
doOrSplit(ifStatement, expression, token, editor);
}
if (token.getTokenType() == JavaTokenType.ANDAND) {
doAndSplit(ifStatement, expression, token, editor);
}
catch (IncorrectOperationException e) {
LOG.error(e);
else if (token.getTokenType() == JavaTokenType.OROR) {
doOrSplit(ifStatement, expression, token, editor);
}
}
@@ -18,7 +18,6 @@ package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.CodeInsightUtil;
import com.intellij.codeInsight.CodeInsightUtilCore;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
@@ -73,10 +72,6 @@ public class SurroundAutoCloseableAction extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) {
return;
}
PsiLocalVariable variable = findVariable(element);
if (variable != null) {
processVariable(project, editor, variable);
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.intention.impl;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
@@ -29,7 +28,6 @@ import org.jetbrains.annotations.NotNull;
public class SwapIfStatementsIntentionAction extends PsiElementBaseIntentionAction {
@Override
public void invoke(@NotNull final Project project, final Editor editor, @NotNull final PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return;
final PsiIfStatement ifStatement = (PsiIfStatement)element.getParent();
final PsiIfStatement nestedIfStatement = (PsiIfStatement) ifStatement.getElseBranch();
assert nestedIfStatement != null;