Function: majutsu-diff--get-value

majutsu-diff--get-value is a natively compiled function defined in majutsu-diff.el.

Signature

(majutsu-diff--get-value MODE &optional USE-BUFFER-ARGS)

Documentation

Get diff arguments for MODE.

  Returns (args range filesets) triple. USE-BUFFER-ARGS follows
majutsu-prefix-use-buffer-arguments or majutsu-direct-use-buffer-arguments.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-diff.el
;;;; Argument Access

(defun majutsu-diff--get-value (mode &optional use-buffer-args)
  "Get diff arguments for MODE.

  Returns (args range filesets) triple.  USE-BUFFER-ARGS follows
`majutsu-prefix-use-buffer-arguments' or
`majutsu-direct-use-buffer-arguments'."
  (setq use-buffer-args
        (pcase-exhaustive use-buffer-args
          ('prefix majutsu-prefix-use-buffer-arguments)
          ('direct majutsu-direct-use-buffer-arguments)
          ('nil majutsu-direct-use-buffer-arguments)
          ((or 'always 'selected 'current 'never)
           use-buffer-args)))
  (let* ((use-current (and (memq use-buffer-args '(always selected current))
                           (eq major-mode mode)))
         (args (cond
                (use-current
                 majutsu-buffer-diff-args)
                ((and (memq use-buffer-args '(always selected))
                      (when-let* ((buf (majutsu--get-mode-buffer
                                        mode (eq use-buffer-args 'selected))))
                        (buffer-local-value 'majutsu-buffer-diff-args buf))))
                (t
                 (majutsu-transient-default-value
                  'majutsu-diff mode
                  'majutsu-diff-current-arguments
                  'majutsu-diff-default-arguments))))
         (range (and use-current majutsu-buffer-diff-range))
         (filesets (and use-current majutsu-buffer-diff-filesets)))
    (list args range filesets)))