* yas/minor-mode should be needed to expand snippets, this means hooks last while snippets last
* will probably *not* fix this bug: ${1:nested{2:thing}} when "thing" is changed "nested"'s end marker doens't move
* TODO: exit snippet if the yas/active-field-overlay is exited
* TODO: kill all field text on first keystroke
* TODO: handle border cases with empty/near empty active field overlays
* TODO: handle escapes
* TODO: handle nested snippets
modified to adapt to new arg list and use `pushnew'
* A `yas/cleanup-snippet' action has to be pushed on `yas/expand'
* expanding a new snippet with a snippet already active must render
the previous one disabled. This shouldn't be a field, it should be
found out on the fly. disabled means its big overlay is coloured
some other color.
* transformations have to be accounted for
* code has to be cleaned up and thoroughly commented.
stuff. Works most of the time but:
1. Consider getting rid of the `deleted' state of a group and using
some other criteria to discover if user can move to a
group. `deleted' is only for subgroups anyway, i think.
2. Consider adding information about restoring boundaries in the
yas/group itself. This way,
a) upon `yas/snippet-cleanup', start and end marker could simply be
set to nil and deleted.
b) `yas/undo-restore-active-group' could recurse down subgroups
restoring them as well. (maybe without specifically moving to
them, but OK.
3. Don't forget to correct `yas/update-mirrors' to correctly use the
transformations in the mirror fields.
issue 33.
* Added functions `yas/field-undo-before-hook',
`yas/field-undo-after-hook', `yas/field-undo-group-text-change' and
variables `yas/field-undo-history',
`yas/field-undo-forbidden-commands' to implement field-level undo.
* Modified `yas/cleanup-snippet' to record the actual snippet end
in the snippet before cleaning up the main overlay.
* New hooks `yas/field-undo-before-hook' and
`yas/field-undo-after-hook' added to `pre-command-hook' and
`post-command-hook', respectively.
* Slightly changed the commentary of the "Snippet register and
unregister routines section"
* Modified step 12 to call `yas/undo-expand-snippet' without the
`(point-min)' argument, which led to incorrect undo behaviour.
* Added a new step in `yas/expand-snippet' describing the local
restore and save of undo infomation in a new slot of the
`yas/snippet' structure. This is step 14, previous 14 was moved to 15.
* Modified `yas/undo-expand-snippet' to kill text up to the the
correct snippet end, which was not being calculated correctly. It is
now a slot of the snippet itself and no longer a parameter.
* Added functions `yas/current-field-text',
`yas/replace-fields-with-value',
`yas/remove-recent-undo-from-history' to refactor some code used
twice or more.
* Modified `yas/check-cleanup-snippet' to detect trigger cleanup
if point exits any primary snippet field, of any
group. Previously cleanup would only be triggered on exiting
all groups. This is a follow-up to issue 28.
* Added two slot to the `yas/snippet' structure to allow for
field-level undo and correct small bug in the previous fix of issue
28.
* Modified `yas/cleanup-snippet' to call
`yas/after-exit-snippet-hook' as a follow-up to feedback on
issue 28.
* (Accidentaly :) changed (but corrected!) indentation of most
existing functions. This was done by a buffer global indent-region.
* (Accidentaly :) ran `checkdoc' but then gave up, it's
uncessary. Didn't change much stuff though.