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