On 24. Oct 2004, at 8:42, Eric Hsu wrote:
- In some corner of my head I feel like snippets, macros and commands
should really all be one type of automation entity. I'm not sure how to do that, but it's a little confusing to have so much power distributed across three different kinds of triggers...
I've been thinking about this myself. I also want templates, drag commands, and upcoming "project drawer commands" to be rolled into this unification.
In a way, a snippet could be viewed as a normal command, but with 'cat' as the interpreter instead of 'bash' (with output set to 'insert as snippet').
In a similar way, a macro could also just have another interpreter (e.g. 'AppleScript' in the future).
Templates (and drag commands) already are basically just commands, and moving them into this unification allows the former to also utilize the snippet features (i.e. to have placeholders in the templates).
With regard to the actual trigger, the snippet trigger is basically just a multi-stroke hotkey -- I'd like to change this to be a regular expression instead (but with slightly changed semantics, in that it'll always do non-greedy matching) and introduce some special codes for the various modifier keys, then this would be a superset of both hotkeys and snippet triggers, but allow so much more customizability, e.g. a trigger could be: "\n}" and the command could do a shift-left (i.e. the requested de-indent pattern).
There should be an option whether to leave the trigger in the text or not (before executing the command).
The downside is that there may be a little more work required, i.e. currently the '\t' after the snippet trigger is implicit, and the 'cat' interpreter is also implicit.
I'd be interested in hearing peoples thoughts on the issue!
Kind regards Allan