diff options
Diffstat (limited to 'platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java')
-rw-r--r-- | platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java index 0c838cd05ec5..2e620c2379c9 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateState.java @@ -723,7 +723,10 @@ public class TemplateState implements Disposable { ExpressionContext context = createExpressionContext(start); Result result = isQuick ? expressionNode.calculateQuickResult(context) : expressionNode.calculateResult(context); - if ((result == null || result.equalsToText("", element)) && defaultValue != null) { + if (isQuick && isEmptyResult(result, element) && !oldValue.isEmpty()) { + return; + } + if (isEmptyResult(result, element) && defaultValue != null) { result = defaultValue.calculateResult(context); } if (element != null) { @@ -743,6 +746,10 @@ public class TemplateState implements Disposable { } } + private static boolean isEmptyResult(Result result, PsiElement context) { + return result == null || result.equalsToText("", context); + } + private void replaceString(String newValue, int start, int end, int segmentNumber) { String oldText = myDocument.getCharsSequence().subSequence(start, end).toString(); |