branch: elpa/magit
commit 4a34ebdb0175d3d8509ef530bd1848fd85bf6da4
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>
magit-{diff,log}--get-value: Add shorthands for USE-BUFFER-ARGS
---
lisp/magit-diff.el | 17 ++++++++++++-----
lisp/magit-log.el | 19 ++++++++++++-------
lisp/magit-status.el | 6 ++----
3 files changed, 26 insertions(+), 16 deletions(-)
diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 3a9faaf1d9f..469a09c2314 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -35,6 +35,8 @@
(require 'image)
(require 'smerge-mode)
+;; For `magit-diff--get-value'
+(defvar magit-status-use-buffer-arguments)
;; For `magit-diff-popup'
(declare-function magit-stash-show "magit-stash" (stash &optional args files))
;; For `magit-diff-visit-file'
@@ -828,8 +830,7 @@ and `:slant'."
(cl-defmethod transient-init-value ((obj magit-diff-prefix))
(pcase-let ((`(,args ,files)
- (magit-diff--get-value 'magit-diff-mode
- magit-prefix-use-buffer-arguments)))
+ (magit-diff--get-value 'magit-diff-mode 'prefix)))
(when-let (((not (eq transient-current-command 'magit-dispatch)))
(file (magit-file-relative-name)))
(setq files (list file)))
@@ -853,11 +854,17 @@ and `:slant'."
"Return the current diff arguments."
(if (memq transient-current-command '(magit-diff magit-diff-refresh))
(magit--transient-args-and-files)
- (magit-diff--get-value (or mode 'magit-diff-mode))))
+ (magit-diff--get-value (or mode 'magit-diff-mode) 'direct)))
(defun magit-diff--get-value (mode &optional use-buffer-args)
- (unless use-buffer-args
- (setq use-buffer-args magit-direct-use-buffer-arguments))
+ (setq use-buffer-args
+ (pcase-exhaustive use-buffer-args
+ ('prefix magit-prefix-use-buffer-arguments)
+ ('status magit-status-use-buffer-arguments)
+ ('direct magit-direct-use-buffer-arguments)
+ ('nil magit-direct-use-buffer-arguments)
+ ((or 'always 'selected 'current 'never)
+ use-buffer-args)))
(let (args files)
(cond
((and (memq use-buffer-args '(always selected current))
diff --git a/lisp/magit-log.el b/lisp/magit-log.el
index 187c800bad2..c4cb1de6707 100644
--- a/lisp/magit-log.el
+++ b/lisp/magit-log.el
@@ -51,6 +51,7 @@
(defvar magit-buffer-margin)
(defvar magit-status-margin)
(defvar magit-status-sections-hook)
+(defvar magit-status-use-buffer-arguments)
(require 'ansi-color)
(require 'crm)
@@ -372,8 +373,7 @@ commits before and half after."
(cl-defmethod transient-init-value ((obj magit-log-prefix))
(pcase-let ((`(,args ,files)
- (magit-log--get-value 'magit-log-mode
- magit-prefix-use-buffer-arguments)))
+ (magit-log--get-value 'magit-log-mode 'prefix)))
(when-let (((not (eq transient-current-command 'magit-dispatch)))
(file (magit-file-relative-name)))
(setq files (list file)))
@@ -397,11 +397,17 @@ commits before and half after."
"Return the current log arguments."
(if (memq transient-current-command '(magit-log magit-log-refresh))
(magit--transient-args-and-files)
- (magit-log--get-value (or mode 'magit-log-mode))))
+ (magit-log--get-value (or mode 'magit-log-mode) 'direct)))
(defun magit-log--get-value (mode &optional use-buffer-args)
- (unless use-buffer-args
- (setq use-buffer-args magit-direct-use-buffer-arguments))
+ (setq use-buffer-args
+ (pcase-exhaustive use-buffer-args
+ ('prefix magit-prefix-use-buffer-arguments)
+ ('status magit-status-use-buffer-arguments)
+ ('direct magit-direct-use-buffer-arguments)
+ ('nil magit-direct-use-buffer-arguments)
+ ((or 'always 'selected 'current 'never)
+ use-buffer-args)))
(let (args files)
(cond
((and (memq use-buffer-args '(always selected current))
@@ -1745,8 +1751,7 @@ Type \\[magit-log-select-quit] to abort without selecting
a commit."
(magit-log-select-setup-buffer
(or branch (magit-get-current-branch) "HEAD")
(append args
- (car (magit-log--get-value 'magit-log-select-mode
- magit-direct-use-buffer-arguments))))
+ (car (magit-log--get-value 'magit-log-select-mode 'direct))))
(if initial
(magit-log-goto-commit-section initial)
(while-let ((rev (magit-section-value-if 'commit))
diff --git a/lisp/magit-status.el b/lisp/magit-status.el
index b002776631e..75fd4bd6795 100644
--- a/lisp/magit-status.el
+++ b/lisp/magit-status.el
@@ -450,10 +450,8 @@ Type \\[magit-commit] to create a commit.
(when (file-remote-p directory)
(magit-git-version-assert))
(let* ((default-directory directory)
- (d (magit-diff--get-value 'magit-status-mode
- magit-status-use-buffer-arguments))
- (l (magit-log--get-value 'magit-status-mode
- magit-status-use-buffer-arguments))
+ (d (magit-diff--get-value 'magit-status-mode 'status))
+ (l (magit-log--get-value 'magit-status-mode 'status))
(file (and magit-status-goto-file-position
(magit-file-relative-name)))
(line (and file (save-restriction (widen) (line-number-at-pos))))