From 90b6ca94e201cc8cb105539716652a1ff1996411 Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Thu, 21 Oct 2010 18:53:51 +0400 Subject: [PATCH] some cases where lookup was not under the prefix fixed --- .../codeInsight/lookup/impl/BackspaceHandler.java | 13 +++---------- .../codeInsight/lookup/impl/TypedHandler.java | 2 +- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/BackspaceHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/BackspaceHandler.java index dd23bb802af0..836cbdba1b6c 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/BackspaceHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/BackspaceHandler.java @@ -38,15 +38,6 @@ public class BackspaceHandler extends EditorActionHandler { return; } - boolean toRestart = false; - final String prefix = lookup.getAdditionalPrefix(); - if (prefix.length() > 0) { - lookup.setAdditionalPrefix(prefix.substring(0, prefix.length() - 1)); - } - else { - toRestart = lookup.getLookupStart() < editor.getCaretModel().getOffset(); - } - lookup.performGuardedChange(new Runnable() { @Override public void run() { @@ -54,11 +45,13 @@ public class BackspaceHandler extends EditorActionHandler { } }); + final String prefix = lookup.getAdditionalPrefix(); if (prefix.length() > 0) { + lookup.setAdditionalPrefix(prefix.substring(0, prefix.length() - 1)); return; } - if (toRestart) { + if (lookup.getLookupStart() < editor.getCaretModel().getOffset()) { final CompletionProcess process = CompletionService.getCompletionService().getCurrentCompletion(); if (process instanceof CompletionProgressIndicator) { ((CompletionProgressIndicator)process).restartCompletion(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/TypedHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/TypedHandler.java index e9c8e99a69e4..eff071ab3b50 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/TypedHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/TypedHandler.java @@ -58,7 +58,6 @@ public class TypedHandler implements TypedActionHandler { } }); if (result == CharFilter.Result.ADD_TO_PREFIX) { - lookup.setAdditionalPrefix(lookup.getAdditionalPrefix() + charTyped); Document document = editor.getDocument(); long modificationStamp = document.getModificationStamp(); @@ -67,6 +66,7 @@ public class TypedHandler implements TypedActionHandler { EditorModificationUtil.typeInStringAtCaretHonorBlockSelection(editor, String.valueOf(charTyped), true); } }); + lookup.setAdditionalPrefix(lookup.getAdditionalPrefix() + charTyped); AutoHardWrapHandler.getInstance().wrapLineIfNecessary(editor, dataContext, modificationStamp);