branch: elpa/llama commit 61ac5906dfa5d98c5cec5b71ea7a7adea2f89f29 Author: Jonas Bernoulli <jo...@bernoul.li> Commit: Jonas Bernoulli <jo...@bernoul.li>
llama--collect: Support splice --- llama-test.el | 4 ++++ llama.el | 18 +++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/llama-test.el b/llama-test.el index 7ae87f4d30..792d32e48a 100644 --- a/llama-test.el +++ b/llama-test.el @@ -388,6 +388,10 @@ (should (equal (##`(,%1 %2 (,%3) ,%4 . ,%5)) (lambda (%1 _%2 %3 %4 %5) `(,%1 %2 (,%3) ,%4 . ,%5)))) + + (should (equal (##list `(,@%1 %2 ,%3 (,@%3 ,%1))) + (lambda (%1 _%2 %3) + (list `(,@%1 %2 ,%3 (,@%3 ,%1)))))) ) (ert-deftest llama-test-701-llama nil diff --git a/llama.el b/llama.el index e8af17e4e3..dfd75de11f 100644 --- a/llama.el +++ b/llama.el @@ -187,11 +187,16 @@ to view this docstring.)" (cond ((memq (car-safe expr) (list (intern "") 'llama 'quote)) expr) ((and backquoted (symbolp expr)) expr) - ((and backquoted (eq (car-safe expr) backquote-unquote-symbol)) - (list backquote-unquote-symbol + ((and backquoted + (memq (car-safe expr) + (list backquote-unquote-symbol + backquote-splice-symbol))) + (list (car expr) (llama--collect (cadr expr) args))) - ((eq (car-safe expr) backquote-backquote-symbol) - (list backquote-backquote-symbol + ((memq (car-safe expr) + (list backquote-backquote-symbol + backquote-splice-symbol)) + (list (car expr) (llama--collect (cadr expr) args nil t))) ((symbolp expr) (let ((name (symbol-name expr))) @@ -398,7 +403,10 @@ expansion, and the looks of this face should hint at that.") ((eq (ignore-errors (bare-symbol (car-safe expr))) 'quote)) ((and (memq (car-safe expr) (list (intern "") 'llama)) (not top))) ((and backquoted (symbol-with-pos-p expr))) - ((and backquoted (eq (car-safe expr) backquote-unquote-symbol)) + ((and backquoted + (memq (car-safe expr) + (list backquote-unquote-symbol + backquote-splice-symbol))) (llama--fontify expr)) ((symbol-with-pos-p expr) (save-match-data