Как вызвать существующее действие IDE в IntelliJ?

1

Я написал плагин, который добавляет группу в меню "новый файл", и я хочу, чтобы мое действие запустило конкретный шаблон файла. Из того, что я понимаю, действие называется "NewFromTemplate", но я столкнулся с двумя проблемами:

  1. Как вызвать уже существующее действие, в данном случае NewFromTemplate?

  2. Как передать ему аргументы, так как я хочу, чтобы он создавал файл из определенного шаблона.

Лучшее, что я придумал, это:

ActionManager am = ActionManager.getInstance();
AnAction ftAction = am.getAction("NewFromTemplate");
ActionManager.getInstance().tryToExecute(
        ftAction, 
        ActionCommand.getInputEvent("NewFromTemplate"), 
        null, 
        ActionPlaces.UNKNOWN, 
        true);

Но, похоже, ничего не открывается - код выполняется, но не открывается новое окно.

Теги:
plugins
intellij-idea

1 ответ

1
Лучший ответ

Вот как я это сделал (просто пример использования жесткого кодированного имени шаблона для отображения необходимых методов)

public class FooAction extends AnAction {

public void actionPerformed(AnActionEvent e) {
    FileTemplateManager fileTemplateManager = FileTemplateManager.getInstance();
    FileTemplate[] templates = fileTemplateManager.getAllTemplates();

    for(FileTemplate ft : templates){

        if(ft.getName().equals("Singleton")){
            AnAction action = new CreateFromTemplateAction(ft);
            action.actionPerformed(e);
        }


    }

}

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню