diff --git a/platform/analysis-impl/src/com/intellij/codeInsight/template/Template.java b/platform/analysis-impl/src/com/intellij/codeInsight/template/Template.java index 94061b01a832..1cc87ceaf55b 100644 --- a/platform/analysis-impl/src/com/intellij/codeInsight/template/Template.java +++ b/platform/analysis-impl/src/com/intellij/codeInsight/template/Template.java @@ -10,8 +10,11 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.List; + /** * Used to build and run a live template. + * * @see TemplateManager */ public abstract class Template implements PresentableLookupValue { @@ -26,17 +29,24 @@ public abstract class Template implements PresentableLookupValue { private boolean myUseStaticImport; public abstract void addTextSegment(@NotNull String text); + public abstract void addVariableSegment(@NonNls @NotNull String name); @NotNull public Variable addVariable(@NonNls @NotNull String name, @NotNull Expression defaultValueExpression, boolean isAlwaysStopAt) { return addVariable(name, defaultValueExpression, defaultValueExpression, isAlwaysStopAt); } + + public abstract List getVariables(); + @NotNull public abstract Variable addVariable(@NotNull Expression expression, boolean isAlwaysStopAt); @NotNull - public Variable addVariable(@NonNls @NotNull String name, Expression expression, Expression defaultValueExpression, boolean isAlwaysStopAt) { + public Variable addVariable(@NonNls @NotNull String name, + Expression expression, + Expression defaultValueExpression, + boolean isAlwaysStopAt) { return addVariable(name, expression, defaultValueExpression, isAlwaysStopAt, false); } diff --git a/platform/analysis-impl/src/com/intellij/codeInsight/template/impl/TemplateImpl.java b/platform/analysis-impl/src/com/intellij/codeInsight/template/impl/TemplateImpl.java index 188e90922998..f932f04fc702 100644 --- a/platform/analysis-impl/src/com/intellij/codeInsight/template/impl/TemplateImpl.java +++ b/platform/analysis-impl/src/com/intellij/codeInsight/template/impl/TemplateImpl.java @@ -385,6 +385,7 @@ public class TemplateImpl extends TemplateBase implements SchemeElement { return myVariables.get(i).skipOnStart(); } + @Override public ArrayList getVariables() { return new ArrayList<>(myVariables); } diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java index 8ca83121b27a..054e79dae89d 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/InplaceRefactoring.java @@ -1019,7 +1019,10 @@ public abstract class InplaceRefactoring { finally { if (!bind) { try { - ((EditorImpl)InjectedLanguageEditorUtil.getTopLevelEditor(myEditor)).stopDumbLater(); + Editor editor = InjectedLanguageEditorUtil.getTopLevelEditor(myEditor); + if (editor instanceof EditorImpl) { + ((EditorImpl)editor).stopDumbLater(); + } } finally { FinishMarkAction.finish(myProject, myEditor, myMarkAction);