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)))))