That sounds great! I can surely explain the general idea, but I will keep some ideas for my self for now.
Macro Recording
I would like much the same experience as the SyntaxEditor has already, and add a few things.
Imagine the user being able to save macro recordings and name them. The UI could list the macros in the command list and add keyboard shortcut just as with the other editor commands. I'm sure this can be done already.
During macro recording it would be very helpful if the activation of saved macros was possible, and that activation saved in the recording as "execute macro" commands, and not saved as a flat recording with the sub-macro commands added to the recording. This is the simplest macro nesting I would like to have.
Loop / Repeat
To be able to do things multiple times, the application should have a "repeat" action, where the user:
- Activate a "Repeat" button or menu entry,
which pops up a dialog where the user can input an integer number as a repeat count. After confirming the number another small popup indicates "ready for command".
- Activate an editor action (press a key or activate a command in the UI),
whereafter that command will be repeated the selected number of times. The user could e.g. press Ctrl+V to paste the text from the clipboard the specified number of times.
The repeat action could be enhanced by also supporting a boolean "condition" as loop input ('while' loop). If, instead of inputting a numeric value, the user selects a condition from a list (e.g. "NotAtEndOfDocument" or "NotAtLineEnd"), the repeat function would continue as long as the condition is 'true'.
I think this requires one simple addition to the SyntaxEditor, the "Change 2" from my previous post. If the application could listen in on the activated editor commands, a dynamic macro could be created, where the selected command is repeated the specified number of times.
Alternatively, the repeat functionality could be a build-in command in SyntaxEditor. Support for nested playbacks would be required then. Of course this should be implemented in a flexible fashion to facilitate any kind of smart idea for repeated actions.
During macro recording, only the 'repeat' command (including the command to repeat) should be added, and not each repeated command done during the repeat execution.
Macro Playback
The user would expect to be able to activate either the last (unnamed) recording or any of the saved recordings, either through GUI or an attached keyboard shortcut.
The SyntaxEditor should just support playback of macros emitting actions through any kind of implemented playback implementation.
What I would expect of SyntaxEditor
I'm interested in the most simple implementation making it possible for me to create a nice and rich macro system. Of cause I would be happy with every little thing the SyntaxEditor can offer to do that, and it already has the most of it.