From dd33751ce9ca8d071072f19a7109638027f4a522 Mon Sep 17 00:00:00 2001 From: Alexander Zolotov Date: Thu, 15 Aug 2013 16:04:22 +0400 Subject: [PATCH] Add 'disable' action for live template lookup --- .../LiveTemplateLookupActionProvider.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateLookupActionProvider.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateLookupActionProvider.java index c3bd8034e63b..05fcba409942 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateLookupActionProvider.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateLookupActionProvider.java @@ -4,6 +4,7 @@ import com.intellij.codeInsight.lookup.Lookup; import com.intellij.codeInsight.lookup.LookupActionProvider; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupElementAction; +import com.intellij.icons.AllIcons; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.options.ShowSettingsUtil; import com.intellij.openapi.project.Project; @@ -13,7 +14,7 @@ import com.intellij.util.PlatformIcons; /** * @author peter */ -public class LiveTemplateLookupActionProvider implements LookupActionProvider{ +public class LiveTemplateLookupActionProvider implements LookupActionProvider { @Override public void fillActions(LookupElement element, final Lookup lookup, Consumer consumer) { if (element instanceof LiveTemplateLookupElement) { @@ -41,6 +42,22 @@ public class LiveTemplateLookupActionProvider implements LookupActionProvider{ return Result.HIDE_LOOKUP; } }); + + final TemplateImpl templateFromSettings = TemplateSettings.getInstance().getTemplate(template.getKey(), template.getGroupName()); + if (templateFromSettings != null) { + consumer.consume(new LookupElementAction(AllIcons.Actions.Delete, String.format("Disable '%s' template", template.getKey())) { + @Override + public Result performLookupAction() { + ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override + public void run() { + templateFromSettings.setDeactivated(true); + } + }); + return Result.HIDE_LOOKUP; + } + }); + } } } }