[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
- [nongnu] elpa/better-jumper dfb80f0eb4 21/48: Add savehist support for buffer context, (continued)
- [nongnu] elpa/better-jumper dfb80f0eb4 21/48: Add savehist support for buffer context, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper e5768d3812 22/48: Readme updates, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 3d27c44b6a 23/48: Fix duplicate jump protection, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 2b85b3a83e 26/48: Correct typo in reference to better-jumper--load-savehist, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper f3d6c048cc 27/48: Fix byte-compiler warning about free variable, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 6d240032ca 29/48: Merge pull request #2 from hlissner/patch-2, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 7ae4011103 31/48: Don't add redundant evil jumps. Fixes #5, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper b2cc34493c 39/48: Require cl-macs to fix byte compiling, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 879ce3939f 14/48: update commentary, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 7f328a886b 45/48: Utilize evil jump var to avoid redundant jumps, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 9b214d71e6 37/48: Merge pull request #8 from sgleizes/bugfix/copy-jump-list-on-focused-new-window,
ELPA Syncer <=
- [nongnu] elpa/better-jumper 17821e7f55 47/48: Bump version to 1.0.1, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 385f53b710 24/48: Fallback to position if marker is invalid, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper fe548d22c9 32/48: Merge branch 'master' of github.com:gilbertw1/better-jumper into master, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 474239a83f 33/48: Add clear jumps function & default context, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper b426ad84d7 35/48: Use a local window configuration hook, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 66acc6d592 34/48: Reorder set jumps parameters, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper e25c634f6a 36/48: Format, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper e3a6546aa6 38/48: Improve persp-mode integration, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper fa2820af35 43/48: Make `better-jumper-set-jump' `interactive', ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 3148a17b59 46/48: Merge pull request #10 from nbfalcon/bugfix/better-jumper-set-jump-command, ELPA Syncer, 2022/01/09