Function: forge--define-topic-header

forge--define-topic-header is a macro defined in forge-topic.el.

Signature

(forge--define-topic-header NAME &key INSERT FORMAT (COMMAND nil COMMAND?))

Source Code

;; Defined in ~/.emacs.d/elpa/forge-20260408.1922/forge-topic.el
;;; Headers

(cl-defmacro forge--define-topic-header
    (name &key insert format (command nil command?))
  (declare (indent defun))
  (let ((fun (intern (format "forge-insert-topic-%s" name)))
        (map (intern (format "forge-topic-%s-section-map" name)))
        (cmd (intern (format "forge-topic-set-%s" name))))
    `(progn
       (cl-defun ,fun (&optional (topic forge-buffer-topic))
         (magit-insert-section (,(intern (format "topic-%s" name)))
           (insert ,(capitalize (string-pad (format "%s: " name) 11)))
           ,(cond
              (insert
               `(unless (funcall ,insert topic)
                  (insert (magit--propertize-face "none" 'magit-dimmed))))
              (format
               `(insert (or (funcall ,format topic)
                            (magit--propertize-face "none" 'magit-dimmed)))))
           (insert ?\n)))
       ,@(and (if command? command t)
              `((defvar-keymap ,map "<remap> <magit-edit-thing>"
                               ,(or command `(function ,cmd)))
                (put ',map 'definition-name ',name)))
       (put ',fun 'definition-name ',name))))