Source code for eye.helpers.macros

# this project is licensed under the WTFPLv2, see COPYING.txt for details

"""Helpers for recording macros
"""

from eye.connector import register_signal, disabled

__all__ = ('set_enabled', 'setup_recording', 'record_action', 'replay_recorded_macro')


[docs] @register_signal(['editor'], 'macro_record_started') @disabled def setup_recording(ed): """Create an empty array for recorded macro actions""" ed.actions_recorded = []
[docs] @register_signal(['editor'], 'action_recorded') @disabled def record_action(ed, action): """Record a macro action in an `editor.actions_recorded`""" ed.actions_recorded.append(action)
[docs] def replay_recorded_macro(ed): """Replay the last recorded macro. Actions are replayed in an undo-group. """ if not getattr(ed, 'actions_recorded', None): return with ed.undo_group(): for action in ed.actions_recorded: ed.replay_macro_action(action)
[docs] def set_enabled(enabled): setup_recording.enabled = enabled record_action.enabled = enabled