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 new file mode 100644 index 000000000000..121dc776b541 --- /dev/null +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateLookupActionProvider.java @@ -0,0 +1,45 @@ +package com.intellij.codeInsight.template.impl; + +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.openapi.application.ApplicationManager; +import com.intellij.openapi.options.ShowSettingsUtil; +import com.intellij.openapi.project.Project; +import com.intellij.util.Consumer; +import com.intellij.util.PlatformIcons; + +/** + * @author peter + */ +public class LiveTemplateLookupActionProvider implements LookupActionProvider{ + @Override + public void fillActions(LookupElement element, final Lookup lookup, Consumer consumer) { + if (element instanceof LiveTemplateLookupElement) { + final TemplateImpl template = ((LiveTemplateLookupElement)element).getTemplate(); + + consumer.consume(new LookupElementAction(PlatformIcons.EDIT, "Edit live template settings") { + @Override + public Result performLookupAction() { + final Project project = lookup.getEditor().getProject(); + assert project != null; + ApplicationManager.getApplication().invokeLater(new Runnable() { + public void run() { + if (project.isDisposed()) return; + + final LiveTemplatesConfigurable configurable = new LiveTemplatesConfigurable(); + ShowSettingsUtil.getInstance().editConfigurable(project, configurable, new Runnable() { + @Override + public void run() { + configurable.getTemplateListPanel().editTemplate(template); + } + }); + } + }); + return Result.HIDE_LOOKUP; + } + }); + } + } +} diff --git a/platform/platform-resources/src/META-INF/LangExtensions.xml b/platform/platform-resources/src/META-INF/LangExtensions.xml index 70f1e44912b1..fa464b836fa0 100644 --- a/platform/platform-resources/src/META-INF/LangExtensions.xml +++ b/platform/platform-resources/src/META-INF/LangExtensions.xml @@ -317,6 +317,7 @@ +