diff options
| author | Jonas Bernoulli <jonas@bernoul.li> | 2024-10-03 21:06:07 +0200 |
|---|---|---|
| committer | Jonas Bernoulli <jonas@bernoul.li> | 2024-10-03 21:06:07 +0200 |
| commit | 61ac5906dfa5d98c5cec5b71ea7a7adea2f89f29 (patch) | |
| tree | 895d89f9d4be9a3e202b9dd9a498e06e3aa90458 | |
| parent | 5db4ead41eee5d44616553ff66c7f9d92604540a (diff) | |
llama--collect: Support splice
| -rw-r--r-- | llama-test.el | 4 | ||||
| -rw-r--r-- | llama.el | 18 |
2 files changed, 17 insertions, 5 deletions
diff --git a/llama-test.el b/llama-test.el index 7ae87f4..792d32e 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 @@ -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 |
