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

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

[nongnu] elpa/better-jumper 9b214d71e6 37/48: Merge pull request #8 from


From: ELPA Syncer
Subject: [nongnu] elpa/better-jumper 9b214d71e6 37/48: Merge pull request #8 from sgleizes/bugfix/copy-jump-list-on-focused-new-window
Date: Sun, 9 Jan 2022 22:58:11 -0500 (EST)

branch: elpa/better-jumper
commit 9b214d71e6eff383dc0fe44fe7171693b38d841f
Merge: 66acc6d592 e25c634f6a
Author: Bryan Gilbert <gilbertw1@gmail.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #8 from 
sgleizes/bugfix/copy-jump-list-on-focused-new-window
    
    Copy the jump list for new focused windows
---
 better-jumper.el | 71 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 35 insertions(+), 36 deletions(-)

diff --git a/better-jumper.el b/better-jumper.el
index 1a97d1498f..b72c20ddfa 100644
--- a/better-jumper.el
+++ b/better-jumper.el
@@ -155,17 +155,17 @@
 
 (defun better-jumper--set-window-struct (window struct)
   "Set jump struct for WINDOW to STRUCT."
-   (set-window-parameter window 'better-jumper-struct struct))
+  (set-window-parameter window 'better-jumper-struct struct))
 
 (defun better-jumper--set-buffer-struct (buffer struct)
   "Set jump struct for BUFFER to STRUCT."
-   (setf (buffer-local-value 'better-jumper--jump-struct buffer) struct))
+  (setf (buffer-local-value 'better-jumper--jump-struct buffer) struct))
 
 (defun better-jumper--set-struct (context struct)
   "Set jump struct for CONTEXT to STRUCT."
   (pcase better-jumper-context
-      (`buffer (better-jumper--set-buffer-struct context struct))
-      (`window (better-jumper--set-window-struct context struct))))
+    (`buffer (better-jumper--set-buffer-struct context struct))
+    (`window (better-jumper--set-window-struct context struct))))
 
 (defun better-jumper--find-buffer-struct-savehist (buffer)
   "Look for BUFFER jump history in savehist variable."
@@ -227,8 +227,8 @@ buffer if CONTEXT parameter is missing."
 (defun better-jumper--set-marker-table (context table)
   "Set marker table for CONTEXT to TABLE."
   (pcase better-jumper-context
-      (`buffer (better-jumper--set-buffer-marker-table context table))
-      (`window (better-jumper--set-window-marker-table context table))))
+    (`buffer (better-jumper--set-buffer-marker-table context table))
+    (`window (better-jumper--set-window-marker-table context table))))
 
 (defun better-jumper--get-buffer-marker-table (&optional buffer)
   "Get current marker table for BUFFER.
@@ -315,21 +315,21 @@ Uses current context if CONTEXT is nil."
         (first-file-name nil)
         (excluded nil))
     (when (and (not file-name)
-                 (string-match-p better-jumper--buffer-targets buffer-name))
-        (setq file-name buffer-name))
-      (when file-name
-        (dolist (pattern better-jumper-ignored-file-patterns)
-          (when (string-match-p pattern file-name)
-            (setq excluded t)))
-        (unless excluded
-          (unless (ring-empty-p jump-list)
-            (setq first-file-name (nth 0 (ring-ref jump-list 0)))
-            (setq first-point (nth 1 (ring-ref jump-list 0))))
-          (unless (and (equal first-point current-point)
-                       (equal first-file-name file-name))
-            (let ((key (better-jumper--make-key)))
-              (puthash key current-marker marker-table)
-              (ring-insert jump-list `(,file-name ,current-point ,key))))))))
+               (string-match-p better-jumper--buffer-targets buffer-name))
+      (setq file-name buffer-name))
+    (when file-name
+      (dolist (pattern better-jumper-ignored-file-patterns)
+        (when (string-match-p pattern file-name)
+          (setq excluded t)))
+      (unless excluded
+        (unless (ring-empty-p jump-list)
+          (setq first-file-name (nth 0 (ring-ref jump-list 0)))
+          (setq first-point (nth 1 (ring-ref jump-list 0))))
+        (unless (and (equal first-point current-point)
+                     (equal first-file-name file-name))
+          (let ((key (better-jumper--make-key)))
+            (puthash key current-marker marker-table)
+            (ring-insert jump-list `(,file-name ,current-point ,key))))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;   PUBLIC FUNCTIONS    ;;;
@@ -380,11 +380,11 @@ If COUNT is nil then defaults to 1."
   (let* ((count (or count 1))
          (struct (better-jumper--get-struct))
          (idx (better-jumper-jump-list-struct-idx struct)))
-        (when (= idx -1)
-          (setq idx 0)
-          (setf (better-jumper-jump-list-struct-idx struct) 0)
-          (better-jumper--push))
-        (better-jumper--jump idx (- 0 count))))
+    (when (= idx -1)
+      (setq idx 0)
+      (setf (better-jumper-jump-list-struct-idx struct) 0)
+      (better-jumper--push))
+    (better-jumper--jump idx (- 0 count))))
 
 ;;;###autoload
 (defun better-jumper-jump-newest ()
@@ -450,18 +450,15 @@ Cleans up deleted windows and copies history to newly 
created windows."
              (not better-jumper-switching-perspectives))
     (let* ((window-list (window-list-1 nil nil t))
            (curr-window (selected-window))
+           (new-window (previous-window))
            (source-jump-struct (better-jumper--get-struct curr-window))
            (source-jump-list (better-jumper--get-struct-jump-list 
source-jump-struct)))
-      (unless (ring-empty-p source-jump-list))
-        (dolist (window window-list)
-          (let* ((target-jump-struct (better-jumper--get-struct window))
-                 (target-jump-list (better-jumper--get-struct-jump-list 
target-jump-struct)))
-            (when (ring-empty-p target-jump-list)
-              (setf (better-jumper-jump-list-struct-idx target-jump-struct) 
(better-jumper-jump-list-struct-idx source-jump-struct))
-              (setf (better-jumper-jump-list-struct-ring target-jump-struct) 
(ring-copy source-jump-list))))))))
-
-(add-hook 'window-configuration-change-hook 
#'better-jumper--window-configuration-hook)
-
+      (unless (ring-empty-p source-jump-list)
+        (let* ((target-jump-struct (better-jumper--get-struct new-window))
+               (target-jump-list (better-jumper--get-struct-jump-list 
target-jump-struct)))
+          (when (ring-empty-p target-jump-list)
+            (setf (better-jumper-jump-list-struct-idx target-jump-struct) 
(better-jumper-jump-list-struct-idx source-jump-struct))
+            (setf (better-jumper-jump-list-struct-ring target-jump-struct) 
(ring-copy source-jump-list))))))))
 
 ;;;;;;;;;;;;;;;;;;;
 ;;;   SAVEHIST  ;;;
@@ -534,11 +531,13 @@ Cleans up deleted windows and copies history to newly 
created windows."
   "Enable better-jumper-mode in the current buffer."
   (unless (or (minibufferp)
               (apply #'derived-mode-p better-jumper-disabled-modes))
+    (add-hook 'window-configuration-change-hook 
#'better-jumper--window-configuration-hook nil t)
     (better-jumper-local-mode +1)))
 
 ;;;###autoload
 (defun turn-off-better-jumper-mode ()
   "Disable `better-jumper-local-mode' in the current buffer."
+  (remove-hook 'window-configuration-change-hook 
#'better-jumper--window-configuration-hook t)
   (better-jumper-local-mode -1))
 
 ;;;###autoload



reply via email to

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