Add 'disable' action for live template lookup

This commit is contained in:
Alexander Zolotov
2013-08-15 16:05:13 +04:00
parent 2c2ae605aa
commit dd33751ce9
@@ -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<LookupElementAction> 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;
}
});
}
}
}
}