emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/evil 23a20e364c: Support evil--jumps-push for dired-mode


From: ELPA Syncer
Subject: [nongnu] elpa/evil 23a20e364c: Support evil--jumps-push for dired-mode
Date: Fri, 21 Apr 2023 11:00:18 -0400 (EDT)

branch: elpa/evil
commit 23a20e364cb151d73373d886355508cb8a0d4539
Author: roxma <roxma@qq.com>
Commit: Axel Forsman <axelsfor@gmail.com>

    Support evil--jumps-push for dired-mode
    
    Add `evil--jumps-current-file-name` that returns `default-directory`
    in `evil--jumps-push` when dired-mode is active.  The
    `dired-directory` can be properly re-opened by `find-file` called by
    future evil-jump-backward or evil-jump-forward.
---
 evil-jumps.el | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/evil-jumps.el b/evil-jumps.el
index 2e08f862a8..93bf4cbcb6 100644
--- a/evil-jumps.el
+++ b/evil-jumps.el
@@ -137,13 +137,18 @@ Otherwise the jump commands act only within the current 
buffer."
                                   (list pos file-name))))
                           (ring-elements 
(evil--jumps-get-window-jump-list))))))
 
+(defun evil--jumps-current-file-name ()
+  "Get the current buffer file name for `evil--jumps-push'."
+  (or buffer-file-name
+      (when (derived-mode-p 'dired-mode) default-directory)))
+
 (defun evil--jumps-jump (idx shift)
   (let ((target-list (evil--jumps-get-window-jump-list)))
     (evil--jumps-message "jumping from %s by %s" idx shift)
     (evil--jumps-message "target list = %s" target-list)
     (setq idx (+ idx shift))
-    (let* ((current-file-name (or (buffer-file-name) (buffer-name)))
-           (size (ring-length target-list)))
+    (let ((current-file-name (or (evil--jumps-current-file-name) 
(buffer-name)))
+          (size (ring-length target-list)))
       (unless evil-jumps-cross-buffers
         ;; skip jump marks pointing to other buffers
         (while (and (< idx size) (>= idx 0)
@@ -168,7 +173,7 @@ Otherwise the jump commands act only within the current 
buffer."
 (defun evil--jumps-push ()
   "Push the current cursor/file position to the jump list."
   (let ((target-list (evil--jumps-get-window-jump-list))
-        (file-name (buffer-file-name))
+        (file-name (evil--jumps-current-file-name))
         (buffer-name (buffer-name))
         (current-pos (point-marker))
         (first-pos nil)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]