Function: majutsu-template-defspecial
majutsu-template-defspecial is a macro defined in majutsu-template.el.
Signature
(majutsu-template-defspecial NAME ARGS &rest BODY)
Documentation
Define syntax special NAME taking raw ARGS and expanding via BODY.
BODY should return a lowered form or a final template node.
Source Code
;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-template.el
(defmacro majutsu-template-defspecial (name args &rest body)
"Define syntax special NAME taking raw ARGS and expanding via BODY.
BODY should return a lowered form or a final template node."
(declare (indent defun))
(unless (symbolp name)
(user-error "majutsu-template-defspecial: NAME must be a symbol, got %S" name))
(let* ((base (if (keywordp name)
(substring (symbol-name name) 1)
(symbol-name name)))
(fn-symbol (intern (format "majutsu-template--special-%s" base))))
`(progn
(defun ,fn-symbol ,args
,(format "Syntax special expander for %s." name)
,@body)
(eval-and-compile
(majutsu-template-define-special ',name #',fn-symbol)))))