From c0f584bb6e129239d6b13c267eecb915640edfdb Mon Sep 17 00:00:00 2001 From: anstarovoyt Date: Wed, 4 Dec 2019 14:55:49 +0300 Subject: [PATCH] postfix templates: do not store templates GitOrigin-RevId: a2de897038009a495341b5b29f16dc085e335738 --- .../PostfixTemplatesConfigurable.java | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/settings/PostfixTemplatesConfigurable.java b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/settings/PostfixTemplatesConfigurable.java index 569b3e3ac446..ab73879daa6b 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/settings/PostfixTemplatesConfigurable.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/postfix/settings/PostfixTemplatesConfigurable.java @@ -48,10 +48,7 @@ public class PostfixTemplatesConfigurable implements SearchableConfigurable, Edi @Nullable private PostfixDescriptionPanel myInnerPostfixDescriptionPanel; - - @NotNull - private final MultiMap myTemplates = MultiMap.create(); - + private JComponent myPanel; private JBCheckBox myCompletionEnabledCheckbox; private JBCheckBox myPostfixTemplatesEnabled; @@ -67,12 +64,8 @@ public class PostfixTemplatesConfigurable implements SearchableConfigurable, Edi public PostfixTemplatesConfigurable() { myTemplatesSettings = PostfixTemplatesSettings.getInstance(); - for (LanguageExtensionPoint extension : LanguagePostfixTemplate.EP_NAME.getExtensionList()) { + for (LanguageExtensionPoint extension : LanguagePostfixTemplate.EP_NAME.getExtensionList()) { PostfixTemplateProvider provider = (PostfixTemplateProvider)extension.getInstance(); - Set templates = PostfixTemplatesUtils.getAvailableTemplates(provider); - if (!templates.isEmpty()) { - myTemplates.putValues(provider, ContainerUtil.sorted(templates, TEMPLATE_COMPARATOR)); - } myProviderToLanguage.put(provider, extension.getKey()); } @@ -193,7 +186,9 @@ public class PostfixTemplatesConfigurable implements SearchableConfigurable, Edi @Override public void reset() { if (myCheckboxTree != null) { - myCheckboxTree.initTree(myTemplates); + MultiMap templatesMap = getProviderToTemplatesMap(); + + myCheckboxTree.initTree(templatesMap); myCheckboxTree.setDisabledTemplatesState(myTemplatesSettings.getProviderToDisabledTemplates()); myPostfixTemplatesEnabled.setSelected(myTemplatesSettings.isPostfixTemplatesEnabled()); myCompletionEnabledCheckbox.setSelected(myTemplatesSettings.isTemplatesCompletionEnabled()); @@ -203,6 +198,20 @@ public class PostfixTemplatesConfigurable implements SearchableConfigurable, Edi } } + @NotNull + private static MultiMap getProviderToTemplatesMap() { + MultiMap templatesMap = MultiMap.create(); + + for (LanguageExtensionPoint extension : LanguagePostfixTemplate.EP_NAME.getExtensionList()) { + PostfixTemplateProvider provider = (PostfixTemplateProvider)extension.getInstance(); + Set templates = PostfixTemplatesUtils.getAvailableTemplates(provider); + if (!templates.isEmpty()) { + templatesMap.putValues(provider, ContainerUtil.sorted(templates, TEMPLATE_COMPARATOR)); + } + } + return templatesMap; + } + @Override public boolean isModified() { if (myCheckboxTree == null) { @@ -229,7 +238,6 @@ public class PostfixTemplatesConfigurable implements SearchableConfigurable, Edi if (myInnerPostfixDescriptionPanel != null) { Disposer.dispose(myInnerPostfixDescriptionPanel); } - myTemplates.clear(); if (myCheckboxTree != null) { Disposer.dispose(myCheckboxTree); myCheckboxTree = null;