diff --git a/snippet-tests.el b/snippet-tests.el index a0e6505..d76812e 100644 --- a/snippet-tests.el +++ b/snippet-tests.el @@ -218,7 +218,7 @@ ;; mirrors ;; (should (equal (snippet--canonicalize-form '(&mirror 1)) - '(&mirror 1 (&transform field-text)))) + '(&mirror 1 (&transform field-string)))) (should (equal (snippet--canonicalize-form '(&mirror 1 (foo))) '(&mirror 1 (&transform (foo))))) (should (equal (snippet--canonicalize-form '(&mirror 1 (&transform (foo)))) @@ -238,4 +238,6 @@ ;; fields (should-error (snippet--canonicalize-form '(&field 1 (&transform (foo) (bar))))) (should-error (snippet--canonicalize-form '(&field 1 (&eval (foo) (bar))))) + (should-error (snippet--canonicalize-form '(&mirror 1 (foo) (bar)))) + (should-error (snippet--canonicalize-form '(&field 1 (foo) (bar)))) (should-error (snippet--canonicalize-form '(&eval (foo) (bar))))) diff --git a/snippet.el b/snippet.el index 829e837..43fc1f9 100644 --- a/snippet.el +++ b/snippet.el @@ -68,15 +68,20 @@ (`(&eval ,_) form) (`(&eval . ,_) - (error "provide only one form after &eval or &transform")) + (error "provide only one form after &eval in %S" form)) (`(&mirror ,name) - `(&mirror ,name (&transform field-text))) + `(&mirror ,name (&transform field-string))) (`(&mirror ,_ (&transform ,_)) form) (`(&field ,_ (,(or `&transform `&eval) ,_)) form) - (`(,(or `&mirror `&field) ,_ (,(or `&transform `&eval) . ,_)) - (error "provide only one form after &eval or &transform")) + (`(,(or `&mirror `&field) ,_ (,(or `&transform `&eval) ,_ . (,extra))) + (error "expected one form after &eval or &transform in %S, you have %d" + form (1+ (length extra)))) + (`(,(or `&mirror `&field) ,name ,_ . (,extra)) + (error "expected one form after '%S' in %S, you have %d" + name + form (1+ (length extra)))) (`(&field ,name (&nested . ,more-forms)) `(&field ,name (&nested . (mapcar #'snippet--canonicalize-form ,more-forms)))