From 2fcc7ff4d4fe184c0595c6c09828236b5357419a Mon Sep 17 00:00:00 2001 From: anstarovoyt Date: Wed, 18 Apr 2018 15:07:57 +0500 Subject: [PATCH] ts editable postfix templates --- .../editable/JavaEditablePostfixTemplate.java | 2 +- .../editable/JavaPostfixTemplateEditor.java | 17 +------------- ...avaPostfixTemplateExpressionCondition.java | 14 ++++++------ .../settings/PostfixTemplateEditorBase.java | 22 ++++++++++++++++--- .../templates/PostfixTemplatesUtils.java | 8 +++---- ...stfixTemplateWithMultipleExpressions.java} | 18 +++++++-------- .../PostfixTemplateExpressionCondition.java | 7 ++++-- 7 files changed, 46 insertions(+), 42 deletions(-) rename platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/{EditablePostfixTemplateWithConditions.java => EditablePostfixTemplateWithMultipleExpressions.java} (72%) diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/JavaEditablePostfixTemplate.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/JavaEditablePostfixTemplate.java index d5d05819c224..7b8538a64184 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/JavaEditablePostfixTemplate.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/JavaEditablePostfixTemplate.java @@ -26,7 +26,7 @@ import java.util.Objects; import java.util.Set; public class JavaEditablePostfixTemplate - extends EditablePostfixTemplateWithConditions { + extends EditablePostfixTemplateWithMultipleExpressions { private static final Condition PSI_ERROR_FILTER = element -> !PsiTreeUtil.hasErrorElements(element); @NotNull private final LanguageLevel myMinimumLanguageLevel; diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/JavaPostfixTemplateEditor.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/JavaPostfixTemplateEditor.java index 717e8763189b..8ff0361cce03 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/JavaPostfixTemplateEditor.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/JavaPostfixTemplateEditor.java @@ -108,22 +108,7 @@ public class JavaPostfixTemplateEditor extends PostfixTemplateEditorBase template = (EditablePostfixTemplateWithConditions)rawTemplate; + EditablePostfixTemplateWithMultipleExpressions template = (EditablePostfixTemplateWithMultipleExpressions)rawTemplate; myExpressionTypesListModel.clear(); for (Condition condition : template.getExpressionConditions()) { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixTemplatesUtils.java b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixTemplatesUtils.java index fedf0fe5703b..ccbf74eda7b3 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixTemplatesUtils.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/PostfixTemplatesUtils.java @@ -5,7 +5,7 @@ import com.intellij.codeInsight.template.impl.TemplateImpl; import com.intellij.codeInsight.template.impl.TemplateSettings; import com.intellij.codeInsight.template.postfix.settings.PostfixTemplateStorage; import com.intellij.codeInsight.template.postfix.templates.editable.EditablePostfixTemplate; -import com.intellij.codeInsight.template.postfix.templates.editable.EditablePostfixTemplateWithConditions; +import com.intellij.codeInsight.template.postfix.templates.editable.EditablePostfixTemplateWithMultipleExpressions; import com.intellij.codeInsight.template.postfix.templates.editable.PostfixChangedBuiltinTemplate; import com.intellij.codeInsight.template.postfix.templates.editable.PostfixTemplateExpressionCondition; import com.intellij.lang.surroundWith.Surrounder; @@ -83,13 +83,13 @@ public abstract class PostfixTemplatesUtils { } public static void writeExternalTemplate(@NotNull PostfixTemplate template, @NotNull Element parentElement) { - if (template instanceof EditablePostfixTemplateWithConditions) { - parentElement.setAttribute(TOPMOST_ATTR, String.valueOf(((EditablePostfixTemplateWithConditions)template).isUseTopmostExpression())); + if (template instanceof EditablePostfixTemplateWithMultipleExpressions) { + parentElement.setAttribute(TOPMOST_ATTR, String.valueOf(((EditablePostfixTemplateWithMultipleExpressions)template).isUseTopmostExpression())); Element conditionsTag = new Element(CONDITIONS_TAG); //noinspection unchecked Set> conditions = - (Set>)((EditablePostfixTemplateWithConditions)template) + (Set>)((EditablePostfixTemplateWithMultipleExpressions)template) .getExpressionConditions(); for (PostfixTemplateExpressionCondition condition : conditions) { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/EditablePostfixTemplateWithConditions.java b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/EditablePostfixTemplateWithMultipleExpressions.java similarity index 72% rename from platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/EditablePostfixTemplateWithConditions.java rename to platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/EditablePostfixTemplateWithMultipleExpressions.java index 3e7dc0c90eec..2cfa22f0b3e2 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/EditablePostfixTemplateWithConditions.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/EditablePostfixTemplateWithMultipleExpressions.java @@ -10,19 +10,19 @@ import org.jetbrains.annotations.NotNull; import java.util.Objects; import java.util.Set; -public abstract class EditablePostfixTemplateWithConditions +public abstract class EditablePostfixTemplateWithMultipleExpressions extends EditablePostfixTemplate { @NotNull protected final Set myExpressionConditions; protected final boolean myUseTopmostExpression; - protected EditablePostfixTemplateWithConditions(@NotNull String templateId, - @NotNull String templateName, - @NotNull TemplateImpl liveTemplate, - @NotNull String example, - @NotNull Set expressionConditions, - boolean useTopmostExpression, - @NotNull PostfixTemplateProvider provider) { + protected EditablePostfixTemplateWithMultipleExpressions(@NotNull String templateId, + @NotNull String templateName, + @NotNull TemplateImpl liveTemplate, + @NotNull String example, + @NotNull Set expressionConditions, + boolean useTopmostExpression, + @NotNull PostfixTemplateProvider provider) { super(templateId, templateName, liveTemplate, example, provider); myExpressionConditions = expressionConditions; myUseTopmostExpression = useTopmostExpression; @@ -64,7 +64,7 @@ public abstract class EditablePostfixTemplateWithConditions that = (EditablePostfixTemplateWithConditions)o; + EditablePostfixTemplateWithMultipleExpressions that = (EditablePostfixTemplateWithMultipleExpressions)o; return myUseTopmostExpression == that.myUseTopmostExpression && Objects.equals(myExpressionConditions, that.myExpressionConditions); } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/PostfixTemplateExpressionCondition.java b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/PostfixTemplateExpressionCondition.java index 4991db7a1a1f..71e0be1a6541 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/PostfixTemplateExpressionCondition.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/templates/editable/PostfixTemplateExpressionCondition.java @@ -22,12 +22,15 @@ public interface PostfixTemplateExpressionCondition extend */ @NotNull String getId(); - + boolean equals(Object o); - + int hashCode(); default void serializeTo(@NotNull Element element) { element.setAttribute(ID_ATTR, getId()); } + + @Override + boolean value(@NotNull T t); }