Function: majutsu-setup-buffer-internal

majutsu-setup-buffer-internal is a natively compiled function defined in majutsu-mode.el.

Signature

(majutsu-setup-buffer-internal MODE LOCKED BINDINGS &key BUFFER DIRECTORY INITIAL-SECTION SELECT-SECTION)

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-mode.el
(cl-defun majutsu-setup-buffer-internal
    (mode locked bindings
          &key buffer directory initial-section select-section)
  (let* ((topdir (majutsu--toplevel-safe directory))
         (value (and locked
                     (with-temp-buffer
                       (pcase-dolist (`(,var ,val) bindings)
                         (set (make-local-variable var) val))
                       (let ((major-mode mode)
                             (default-directory topdir))
                         (majutsu-buffer-value)))))
         (buffer (if buffer
                     (get-buffer-create buffer)
                   (majutsu-get-mode-buffer mode value topdir)))
         (section (and buffer (magit-current-section)))
         (created (not buffer)))
    (unless buffer
      (setq buffer (majutsu-generate-new-buffer mode value topdir)))
    (with-current-buffer buffer
      (setq majutsu-previous-section section)
      (setq majutsu--default-directory topdir)
      (setq default-directory topdir)
      (funcall mode)
      (pcase-dolist (`(,var ,val) bindings)
        (set (make-local-variable var) val))
      (when created
        (run-hooks 'majutsu-create-buffer-hook)))
    (majutsu-display-buffer buffer)
    (with-current-buffer buffer
      (run-hooks 'majutsu-setup-buffer-hook)
      (majutsu-refresh-buffer-internal created
                                       :initial-section initial-section
                                       :select-section select-section)
      (when created
        (run-hooks 'majutsu-post-create-buffer-hook)))
    buffer))