public void actionPerformed(AnActionEvent e) {
   if (!ActionMacroManager.getInstance().isRecording()) {
     final ActionMacroManager manager = ActionMacroManager.getInstance();
     manager.startRecording(IdeBundle.message("macro.noname"));
   } else {
     ActionMacroManager.getInstance()
         .stopRecording(PlatformDataKeys.PROJECT.getData(e.getDataContext()));
   }
 }
  public void update(AnActionEvent e) {
    boolean isRecording = ActionMacroManager.getInstance().isRecording();

    e.getPresentation()
        .setText(
            isRecording
                ? IdeBundle.message("action.stop.macro.recording")
                : IdeBundle.message("action.start.macro.recording"));

    if (ActionPlaces.STATUS_BAR_PLACE.equals(e.getPlace())) {
      e.getPresentation()
          .setIcon(
              isRecording
                  ? IconLoader.getIcon("/ide/macro/recording_stop.png")
                  : IconLoader.getIcon("/ide/macro/recording_stop.png"));
    } else {
      e.getPresentation().setIcon(null);
    }
  }