branch: elpa/dirvish
commit e819ca8b9c5732d46ab04429d0ac7f1b4f4a4394
Author: Alex Lu <[email protected]>
Commit: Alex Lu <[email protected]>
fix: make `:vc-backend` a number or a non-nil symbol
---
dirvish-extras.el | 4 ++--
dirvish.el | 8 +-------
extensions/dirvish-vc.el | 12 +++++++-----
3 files changed, 10 insertions(+), 14 deletions(-)
diff --git a/dirvish-extras.el b/dirvish-extras.el
index 7558ecb922..90243bc294 100644
--- a/dirvish-extras.el
+++ b/dirvish-extras.el
@@ -93,9 +93,9 @@ RECIPE has the same form as `dirvish-default-layout'."
("c" collapse "Collapse unique nested paths"
(not (dirvish-prop :remote)))
("v" vc-state "Version control state"
- (and (display-graphic-p) (dirvish-prop :vc-backend)))
+ (and (display-graphic-p) (symbolp (dirvish-prop :vc-backend))))
("m" git-msg "Git commit messages"
- (and (dirvish-prop :vc-backend) (not (dirvish-prop :remote))))
+ (and (symbolp (dirvish-prop :vc-backend)) (not (dirvish-prop :remote))))
("1" '(0 nil 0.4) " - | current (60%) | preview (40%)")
("2" '(0 nil 0.8) " - | current (20%) | preview (80%)")
("3" '(1 0.08 0.8) "parent (8%) | current (12%) | preview (80%)")
diff --git a/dirvish.el b/dirvish.el
index 700e70a0e0..1d8c3bfc4d 100644
--- a/dirvish.el
+++ b/dirvish.el
@@ -1233,19 +1233,13 @@ INHIBIT-SETUP is passed to `dirvish-data-for-dir'."
(when (buffer-live-p buf)
(with-current-buffer buf
(maphash (lambda (k v) (puthash k v dirvish--attrs-hash)) data)
- (dirvish-prop :vc-backend vc)
+ (dirvish-prop :vc-backend (or vc 0)) ; for &context compat
(dirvish-data-for-dir dir buf inhibit-setup))))
(delete-process p)
(dirvish--kill-buffer (process-buffer p)))
nil 'meta (cons buffer inhibit-setup)))
(cl-defgeneric dirvish-data-for-dir (dir buffer inhibit-setup)
- "Fetch data for DIR in BUFFER, maybe INHIBIT-SETUP.")
-
-(cl-defmethod dirvish-data-for-dir
- (dir buffer inhibit-setup
- &context ((dirvish-prop :vc-backend) boolean)
- &context ((dirvish-prop :remote) boolean))
"Fetch data for DIR in BUFFER.
It is called when neither `:vc-backend' nor `:remote' is included in
DIRVISH-PROPs, i.e. DIR is in localhost and is not being
diff --git a/extensions/dirvish-vc.el b/extensions/dirvish-vc.el
index ea9781d2a1..84bd7dea88 100644
--- a/extensions/dirvish-vc.el
+++ b/extensions/dirvish-vc.el
@@ -175,7 +175,7 @@ This attribute only works on graphic displays."
(unless (= (car (window-fringes)) dirvish-vc-state-fringe)
(set-window-fringes nil dirvish-vc-state-fringe dirvish-window-fringe))
(let ((ov (make-overlay l-beg l-beg)))
- (when-let* (((dirvish-prop :vc-backend))
+ (when-let* (((symbolp (dirvish-prop :vc-backend)))
(state (dirvish-attribute-cache f-name :vc-state))
(face (alist-get state dirvish-vc-state-face-alist))
(display `(left-fringe dirvish-vc-gutter . ,(cons face nil))))
@@ -196,7 +196,7 @@ This attribute only works on graphic displays."
(dirvish-define-preview vc-diff (ext)
"Use output of `vc-diff' as preview."
- (when (and (dirvish-prop :vc-backend)
+ (when (and (symbolp (dirvish-prop :vc-backend))
(not (member ext dirvish-media-exts))
(cl-letf (((symbol-function 'pop-to-buffer) #'ignore)
((symbol-function 'message) #'ignore))
@@ -205,7 +205,7 @@ This attribute only works on graphic displays."
(dirvish-define-preview vc-log ()
"Use output of `vc-print-log' as preview."
- (when (and (dirvish-prop :vc-backend)
+ (when (and (symbolp (dirvish-prop :vc-backend))
(cl-letf (((symbol-function 'pop-to-buffer) #'ignore))
(prog1 t (vc-print-log))))
'(buffer . "*vc-change-log*")))
@@ -213,6 +213,7 @@ This attribute only works on graphic displays."
(dirvish-define-preview vc-blame (file ext preview-window dv)
"Use output of `vc-annotate' (file) or `vc-dir' (dir) as preview."
(when-let* ((bk (dirvish-prop :vc-backend))
+ ((symbolp bk))
(orig-buflist (buffer-list))
(display-buffer-alist
'(("\\*\\(Annotate \\|vc-dir\\).*\\*"
@@ -241,6 +242,7 @@ This attribute only works on graphic displays."
"Version control info such as git branch."
(when-let* (((> (window-width) 30))
(bk (dirvish-prop :vc-backend))
+ ((symbolp bk))
(ml-str (vc-call-backend bk 'mode-line-string default-directory))
(bk-str (format "%s:" bk)))
(format " %s %s "
@@ -257,9 +259,9 @@ This attribute only works on graphic displays."
[:description
(lambda () (dirvish--format-menu-heading "Version control commands"))
("v" dirvish-vc-preview-ifx
- :if (lambda () (dirvish-prop :vc-backend)))
+ :if (lambda () (symbolp (dirvish-prop :vc-backend))))
("n" "Do the next action" dired-vc-next-action
- :if (lambda () (dirvish-prop :vc-backend)))
+ :if (lambda () (symbolp (dirvish-prop :vc-backend))))
("c" "Create repo" vc-create-repo)])
(provide 'dirvish-vc)