postfix templates: do not store templates

GitOrigin-RevId: a2de897038009a495341b5b29f16dc085e335738
This commit is contained in:
anstarovoyt
2019-12-04 12:07:42 +00:00
committed by intellij-monorepo-bot
parent 1c71105d90
commit c0f584bb6e
@@ -48,10 +48,7 @@ public class PostfixTemplatesConfigurable implements SearchableConfigurable, Edi
@Nullable
private PostfixDescriptionPanel myInnerPostfixDescriptionPanel;
@NotNull
private final MultiMap<PostfixTemplateProvider, PostfixTemplate> 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<PostfixTemplate> 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<PostfixTemplateProvider, PostfixTemplate> 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<PostfixTemplateProvider, PostfixTemplate> getProviderToTemplatesMap() {
MultiMap<PostfixTemplateProvider, PostfixTemplate> templatesMap = MultiMap.create();
for (LanguageExtensionPoint<?> extension : LanguagePostfixTemplate.EP_NAME.getExtensionList()) {
PostfixTemplateProvider provider = (PostfixTemplateProvider)extension.getInstance();
Set<PostfixTemplate> 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;