diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractInplaceIntroducer.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractInplaceIntroducer.java index 722386e1b0cd..39ad7194929a 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractInplaceIntroducer.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractInplaceIntroducer.java @@ -17,6 +17,8 @@ package com.intellij.refactoring.introduceParameter; import com.intellij.codeInsight.highlighting.HighlightManager; import com.intellij.codeInsight.intention.impl.TypeExpression; +import com.intellij.codeInsight.lookup.LookupManager; +import com.intellij.codeInsight.lookup.impl.LookupImpl; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Document; @@ -160,11 +162,6 @@ public abstract class AbstractInplaceIntroducer extends VariableInplaceIntroduce final PsiModifierList modifierList = variable.getModifierList(); LOG.assertTrue(modifierList != null); int textOffset = modifierList.getTextOffset(); - - String visibility = getVisibility(); - if (visibility == PsiModifier.PACKAGE_LOCAL) { - visibility = ""; - } final String modifierListText = modifierList.getText(); int length = PsiModifier.PUBLIC.length(); @@ -189,7 +186,25 @@ public abstract class AbstractInplaceIntroducer extends VariableInplaceIntroduce endOffset = textOffset + length; } - document.replaceString(startOffset, endOffset, visibility); + String visibility = getVisibility(); + if (visibility == PsiModifier.PACKAGE_LOCAL) { + visibility = ""; + } + final String finalVisibility = visibility; + + Runnable runnable = new Runnable() { + @Override + public void run() { + document.replaceString(startOffset, endOffset, finalVisibility); + } + }; + + final LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(myEditor); + if (lookup != null) { + lookup.performGuardedChange(runnable); + } else { + runnable.run(); + } } }.execute(); } diff --git a/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableInplaceIntroducer.java b/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableInplaceIntroducer.java index 786817dff467..2e05d7203321 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableInplaceIntroducer.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableInplaceIntroducer.java @@ -18,6 +18,8 @@ package com.intellij.refactoring.introduceVariable; import com.intellij.codeInsight.intention.impl.TypeExpression; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupElementBuilder; +import com.intellij.codeInsight.lookup.LookupManager; +import com.intellij.codeInsight.lookup.impl.LookupImpl; import com.intellij.codeInsight.template.*; import com.intellij.codeInsight.template.Result; import com.intellij.codeInsight.template.impl.TemplateManagerImpl; @@ -392,14 +394,24 @@ public class VariableInplaceIntroducer extends VariableInplaceRenamer { final int textOffset = modifierList.getTextOffset(); final Document document = myEditor.getDocument(); - if (generateFinal) { - final PsiTypeElement typeElement = variable.getTypeElement(); - final int typeOffset = typeElement != null ? typeElement.getTextOffset() : textOffset; - document.insertString(typeOffset, modifier + " "); - } - else { - final int idx = modifierList.getText().indexOf(modifier); - document.deleteString(textOffset + idx, textOffset + idx + modifier.length() + 1); + final Runnable runnable = new Runnable() { + public void run() { + if (generateFinal) { + final PsiTypeElement typeElement = variable.getTypeElement(); + final int typeOffset = typeElement != null ? typeElement.getTextOffset() : textOffset; + document.insertString(typeOffset, modifier + " "); + } + else { + final int idx = modifierList.getText().indexOf(modifier); + document.deleteString(textOffset + idx, textOffset + idx + modifier.length() + 1); + } + } + }; + final LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(myEditor); + if (lookup != null) { + lookup.performGuardedChange(runnable); + } else { + runnable.run(); } } }.execute();