Function: majutsu-template--render-node

majutsu-template--render-node is a natively compiled function defined in majutsu-template.el.

Signature

(majutsu-template--render-node NODE)

Documentation

Render AST NODE to jj template string.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-template.el
(defun majutsu-template--render-node (node)
  "Render AST NODE to jj template string."
  (pcase (majutsu-template-node-kind node)
    (:literal
     (format "\"%s\"" (majutsu-template--str-escape (majutsu-template-node-value node))))
    (:raw
     (majutsu-template-node-value node))
    (:var
     (symbol-name (majutsu-template-node-value node)))
    (:lambda
     (let* ((params (majutsu-template--lambda-params node))
            (body (majutsu-template--lambda-body node)))
       (format "|%s| %s"
               (mapconcat #'symbol-name params ", ")
               (majutsu-template--render-node body))))
    (:call
     (let* ((name (majutsu-template-node-value node))
            (args (majutsu-template-node-args node))
            (compiled-args (mapconcat #'majutsu-template--render-node args ", ")))
       (format "%s(%s)" name compiled-args)))
    (_
     (user-error "majutsu-template: unknown AST node kind %S" (majutsu-template-node-kind node)))))