branch: elpa/dirvish
commit a63ea0a8e358eee65d7e7ebbb0895510cac6e198
Author: Alex Lu <hellosimon1...@hotmail.com>
Commit: Alex Lu <hellosimon1...@hotmail.com>

    perf(side): auto jump only when file under cursor changes
    
    Closes #226
---
 extensions/dirvish-side.el | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/extensions/dirvish-side.el b/extensions/dirvish-side.el
index 9600af70c8..024c6f5aa7 100644
--- a/extensions/dirvish-side.el
+++ b/extensions/dirvish-side.el
@@ -105,20 +105,21 @@ filename until the project root when opening a side 
session."
    0.01 nil
    (lambda ()
      (when-let* (((not dirvish--this))
-                 (dir (or (dirvish--get-project-root) default-directory))
+                 ((not (active-minibuffer-window)))
                  (win (dirvish-side--session-visible-p))
                  (dv (with-selected-window win (dirvish-curr)))
-                 ((not (active-minibuffer-window)))
-                 (file buffer-file-name))
+                 (dir (or (dirvish--get-project-root) default-directory))
+                 (prev (with-selected-window win (dired-get-filename nil t)))
+                 (curr buffer-file-name)
+                 ((not (equal prev curr))))
        (with-selected-window win
-         (when dir
-           (setq dirvish--this dv)
-           (let (buffer-list-update-hook) (dirvish-find-entry-a dir))
-           (if dirvish-side-auto-expand (dirvish-subtree-expand-to file)
-             (dired-goto-file file))
-           (dirvish-prop :cus-header 'dirvish-side-header)
-           (dirvish--setup-mode-line (car (dv-layout dv)))
-           (dirvish-update-body-h))
+         (setq dirvish--this dv)
+         (let (buffer-list-update-hook) (dirvish-find-entry-a dir))
+         (if dirvish-side-auto-expand (dirvish-subtree-expand-to curr)
+           (dired-goto-file curr))
+         (dirvish-prop :cus-header 'dirvish-side-header)
+         (dirvish--setup-mode-line (car (dv-layout dv)))
+         (dirvish-update-body-h)
          (setq dirvish--this nil))
        (set-window-dedicated-p win t)))))
 

Reply via email to