From f65c74c073b880a1bfde90a62a8689beb4ea3ff5 Mon Sep 17 00:00:00 2001 From: Alexander Zolotov Date: Fri, 13 Jul 2012 19:59:25 +0400 Subject: [PATCH] IDEA-88519: Unexpected formatting live templates - enable force-formatting for complex zen-coding templates only. simple templates is reformated according to template reformat option #IDEA-88519 fixed --- .../template/CustomTemplateCallback.java | 4 +++- .../codeInsight/template/LiveTemplateBuilder.java | 14 +++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/CustomTemplateCallback.java b/platform/lang-impl/src/com/intellij/codeInsight/template/CustomTemplateCallback.java index 656946038734..3494cee4a608 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/CustomTemplateCallback.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/CustomTemplateCallback.java @@ -114,7 +114,9 @@ public class CustomTemplateCallback { } public void startTemplate(Template template, Map predefinedValues, TemplateEditingListener listener) { - template.setToReformat(!myInInjectedFragment); + if(myInInjectedFragment) { + template.setToReformat(false); + } myTemplateManager.startTemplate(myEditor, template, false, predefinedValues, listener); } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/LiveTemplateBuilder.java b/platform/lang-impl/src/com/intellij/codeInsight/template/LiveTemplateBuilder.java index 64f63f0897c4..fd7a58ae8b5f 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/LiveTemplateBuilder.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/LiveTemplateBuilder.java @@ -36,6 +36,7 @@ public class LiveTemplateBuilder { private final List myVariableOccurences = new ArrayList(); private final List myMarkers = new ArrayList(); private String myLastEndVarName; + private boolean myIsToReformat = false; public CharSequence getText() { return myText; @@ -123,6 +124,7 @@ public class LiveTemplateBuilder { last = occurence.myOffset; } template.addTextSegment(myText.substring(last)); + template.setToReformat(myIsToReformat); return template; } @@ -215,6 +217,7 @@ public class LiveTemplateBuilder { }*/ public int insertTemplate(int offset, TemplateImpl template, Map predefinedVarValues) { + myIsToReformat = myText.length() > 0 || template.isToReformat(); removeEndVarAtOffset(offset); String text = template.getTemplateText(); @@ -301,17 +304,6 @@ public class LiveTemplateBuilder { } } - private boolean isInEmptyText(int offset) { - if (offset >= myText.length()) { - return false; - } - char c = myText.charAt(offset++); - while (Character.isWhitespace(c) && offset < myText.length()) { - c = myText.charAt(offset++); - } - return c == '<' || c == '"'; - } - private boolean hasVarAtOffset(int offset) { boolean flag = false; for (VarOccurence occurence : myVariableOccurences) {