diff --git a/platform/lang-impl/src/com/intellij/codeInsight/editorActions/CompletionAutoPopupHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/editorActions/CompletionAutoPopupHandler.java index 8f2149d10191..d5fe732253b4 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/editorActions/CompletionAutoPopupHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/editorActions/CompletionAutoPopupHandler.java @@ -21,10 +21,12 @@ import com.intellij.codeInsight.completion.CompletionPhase; import com.intellij.codeInsight.completion.CompletionType; import com.intellij.codeInsight.completion.impl.CompletionServiceImpl; import com.intellij.codeInsight.lookup.LookupManager; +import com.intellij.codeInsight.lookup.impl.LookupImpl; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.EditorModificationUtil; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.project.IndexNotReadyException; import com.intellij.openapi.project.Project; @@ -63,11 +65,21 @@ public class CompletionAutoPopupHandler extends TypedHandlerDelegate { CompletionServiceImpl.setCompletionPhase(CompletionPhase.NoCompletion); } + if (oldPhase instanceof CompletionPhase.CommittingDocuments && ((CompletionPhase.CommittingDocuments)oldPhase).restartCompletion()) { return Result.STOP; } - if (LookupManager.getInstance(project).getActiveLookup() != null) { + LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor); + if (lookup != null) { + if (editor.getSelectionModel().hasSelection()) { + lookup.performGuardedChange(new Runnable() { + @Override + public void run() { + EditorModificationUtil.deleteSelectedText(editor); + } + }); + } return Result.STOP; } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupTypedHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupTypedHandler.java index 8e4dc4b0a886..341c57bca4b2 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupTypedHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupTypedHandler.java @@ -46,21 +46,6 @@ import java.util.Arrays; public class LookupTypedHandler extends TypedHandlerDelegate { private static boolean inside = false; - @Override - public Result checkAutoPopup(char charTyped, Project project, final Editor editor, PsiFile file) { - LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor); - if (lookup != null && editor.getSelectionModel().hasSelection()) { - lookup.performGuardedChange(new Runnable() { - @Override - public void run() { - EditorModificationUtil.deleteSelectedText(editor); - } - }); - } - - return lookup != null ? Result.STOP : Result.CONTINUE; - } - @Override public Result beforeCharTyped(final char charTyped, Project project, diff --git a/platform/platform-resources/src/META-INF/LangExtensions.xml b/platform/platform-resources/src/META-INF/LangExtensions.xml index 07916b61a0ca..0bdd158f4992 100644 --- a/platform/platform-resources/src/META-INF/LangExtensions.xml +++ b/platform/platform-resources/src/META-INF/LangExtensions.xml @@ -529,7 +529,7 @@ - +