Function: forge--setup-post-buffer
forge--setup-post-buffer is a byte-compiled function defined in
forge-post.el.
Signature
(forge--setup-post-buffer OBJ-OR-ACTION SUBMIT FILE HEADER &optional BINDINGS FN)
Source Code
;; Defined in ~/.emacs.d/elpa/forge-20260408.1922/forge-post.el
(defun forge--setup-post-buffer ( obj-or-action submit file header
&optional bindings fn)
(declare (indent defun))
(let* ((prevbuf (current-buffer))
(winconf (current-window-configuration))
(action (cond ((symbolp obj-or-action) obj-or-action)
((forge--childp obj-or-action 'forge-topic) 'reply)
((forge--childp obj-or-action 'forge-post) 'edit)))
(obj (if (symbolp obj-or-action)
(forge-get-repository :tracked)
obj-or-action))
(repo (forge-get-repository obj))
(header (forge--format obj header))
(file (forge--post-expand-file-name (forge--format obj file) repo))
(_ (make-directory (file-name-directory file) t))
(buffer (find-file-noselect file))
(resume (forge--post-resume-p file buffer)))
(with-current-buffer buffer
(forge-post-mode)
(magit-set-header-line-format header)
(setq forge--pre-post-buffer prevbuf)
(setq forge--pre-post-winconf winconf)
(forge-set-buffer-repository)
(setq forge-edit-post-action action)
(setq forge--buffer-post-object obj)
(setq forge--submit-post-function submit)
(pcase-dolist (`(,var ,val) bindings)
(set (make-local-variable var) val)
(when (eq var 'forge--buffer-template)
(let-alist forge--buffer-template
(setq forge--buffer-assignees .assignees)
(setq forge--buffer-labels .labels)
(setq forge--buffer-draft-p .draft))))
(cond-let
(resume)
((not (memq action '(new-discussion new-issue new-pullreq))))
([template (alist-get 'text forge--buffer-template)]
(unless (string-prefix-p "# " template)
(insert "# \n\n"))
(insert template)
(goto-char 3))
((insert "# ")))
(when fn
(funcall fn)))
(run-hook-wrapped 'forge-edit-post-hook
(lambda (fn) (with-current-buffer buffer (funcall fn)) nil))
(message (substitute-command-keys
"Use \\[forge-post-menu] to set fields and submit or abort"))
(forge--display-post-buffer buffer)))