branch: master commit 596e6b2640ab80c8823a749c4da71af5dd2e6fe0 Author: João Távora <joaotav...@gmail.com> Commit: João Távora <joaotav...@gmail.com>
Closes #537: Be lenient to extensions operating on snippet fields * yasnippet.el (yas--on-protection-overlay-modification): Commit the snippets being destroyed instead of signalling a protection violation. --- yasnippet.el | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/yasnippet.el b/yasnippet.el index cb1d041..c93d886 100644 --- a/yasnippet.el +++ b/yasnippet.el @@ -3496,8 +3496,14 @@ The error should be ignored in `debug-ignored-errors'" (unless yas--inhibit-overlay-hooks (cond ((not (or after? (yas--undo-in-progress))) - (setq yas--protection-violation (point)) - (error "Exit the snippet first!"))))) + (cond (t + (let ((snippets (yas--snippets-at-point))) + (yas--message 3 "Comitting snippets. Action would destroy a protection overlay.") + (cl-loop for snippet in snippets + do (yas--commit-snippet snippet)))) + (nil + (setq yas--protection-violation (point)) + (error "Exit the snippet first!"))))))) (add-to-list 'debug-ignored-errors "^Exit the snippet first!$")