From 38f57b0d09c0f90dbb1f3d663dc7434833d2c3a5 Mon Sep 17 00:00:00 2001 From: Alexander Zolotov Date: Tue, 8 Sep 2015 18:39:23 +0300 Subject: [PATCH] Emmet: do not move caret on breaking template (WEB-13513) --- .../template/emmet/ZenCodingTemplate.java | 44 ++++--------------- 1 file changed, 8 insertions(+), 36 deletions(-) diff --git a/xml/impl/src/com/intellij/codeInsight/template/emmet/ZenCodingTemplate.java b/xml/impl/src/com/intellij/codeInsight/template/emmet/ZenCodingTemplate.java index 72a9689736da..753977357815 100644 --- a/xml/impl/src/com/intellij/codeInsight/template/emmet/ZenCodingTemplate.java +++ b/xml/impl/src/com/intellij/codeInsight/template/emmet/ZenCodingTemplate.java @@ -20,7 +20,9 @@ import com.intellij.codeInsight.CodeInsightBundle; import com.intellij.codeInsight.completion.CompletionParameters; import com.intellij.codeInsight.completion.CompletionResultSet; import com.intellij.codeInsight.lookup.LookupElementPresentation; -import com.intellij.codeInsight.template.*; +import com.intellij.codeInsight.template.CustomLiveTemplateBase; +import com.intellij.codeInsight.template.CustomTemplateCallback; +import com.intellij.codeInsight.template.LiveTemplateBuilder; import com.intellij.codeInsight.template.emmet.filters.SingleLineEmmetFilter; import com.intellij.codeInsight.template.emmet.filters.ZenCodingFilter; import com.intellij.codeInsight.template.emmet.generators.XmlZenCodingGenerator; @@ -34,9 +36,11 @@ import com.intellij.diagnostic.AttachmentFactory; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.editor.*; +import com.intellij.openapi.editor.Caret; +import com.intellij.openapi.editor.CaretAction; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.EditorModificationUtil; import com.intellij.openapi.util.Condition; -import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.util.text.StringUtil; import com.intellij.patterns.StandardPatterns; @@ -245,39 +249,7 @@ public class ZenCodingTemplate extends CustomLiveTemplateBase { break; } } - - callback.startTemplate(builder.buildTemplate(), null, new TemplateEditingAdapter() { - private TextRange myEndVarRange; - private Editor myEditor; - - @Override - public void beforeTemplateFinished(TemplateState state, Template template) { - int variableNumber = state.getCurrentVariableNumber(); - if (variableNumber >= 0 && template instanceof TemplateImpl) { - TemplateImpl t = (TemplateImpl)template; - while (variableNumber < t.getVariableCount()) { - String varName = t.getVariableNameAt(variableNumber); - if (LiveTemplateBuilder.isEndVariable(varName)) { - myEndVarRange = state.getVariableRange(varName); - myEditor = state.getEditor(); - break; - } - variableNumber++; - } - } - } - - @Override - public void templateFinished(Template template, boolean brokenOff) { - if (brokenOff && myEndVarRange != null && myEditor != null) { - int offset = myEndVarRange.getStartOffset(); - if (offset >= 0 && offset != myEditor.getCaretModel().getOffset()) { - myEditor.getCaretModel().moveToOffset(offset); - myEditor.getScrollingModel().scrollToCaret(ScrollType.RELATIVE); - } - } - } - }); + callback.startTemplate(builder.buildTemplate(), null, null); } private static void checkTemplateOutputLength(ZenCodingNode node, CustomTemplateCallback callback) throws EmmetException {