;; NOTE: https://github.com/minad/tempel/issues/23 c-mode c-ts-mode c++-mode c++-ts-mode (guard "#ifndef " (p (thread-last (file-name-base (or (buffer-file-name) (buffer-name))) (concat (when-let ((project (project-current))) (concat (project-name project) "_"))) (upcase) (string-replace "-" "_") (replace-regexp-in-string "^[0-9]+" "_\\&") (replace-regexp-in-string "[^A-Z0-9_]+" "") (format "%s_H")) header) n "#define " header n n r n n "#endif /* !" header " */") emacs-lisp-mode (header ";;; " (file-name-nondirectory (or (buffer-file-name) (buffer-name))) " --- " p " -*- lexical-binding: t; -*-" n n q) (section "\f" n ";;; " p n n q)