[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/better-jumper e3a6546aa6 38/48: Improve persp-mode integra
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/better-jumper e3a6546aa6 38/48: Improve persp-mode integration |
Date: |
Sun, 9 Jan 2022 22:58:11 -0500 (EST) |
branch: elpa/better-jumper
commit e3a6546aa626b9a79ae451c88f44cf26f9d1a919
Author: Bryan Gilbert <gilbertw1@gmail.com>
Commit: Bryan Gilbert <gilbertw1@gmail.com>
Improve persp-mode integration
Prevent leaking jump lists between perspectives and prevent
adding evil jumps after perspective changes.
Fixes #6
---
better-jumper.el | 37 ++++++++++++++++++++++++++++++++++---
1 file changed, 34 insertions(+), 3 deletions(-)
diff --git a/better-jumper.el b/better-jumper.el
index b72c20ddfa..900c8c7a74 100644
--- a/better-jumper.el
+++ b/better-jumper.el
@@ -120,6 +120,15 @@
(defvar better-jumper-switching-perspectives nil
"Flag indicating if perspective switch is in progress.")
+(defvar better-jumper--before-persp-switch-persp-name nil
+ "Persp name before perspective persp switch.")
+
+(defvar better-jumper--before-persp-switch-jumps nil
+ "Jumps before perspective persp switch.")
+
+(defvar better-jumper--before-persp-switch-point-marker nil
+ "Point before perspective persp switch.")
+
(defvar better-jumper--buffer-targets "\\*\\(new\\|scratch\\)\\*"
"Regexp to match against `buffer-name' to determine whether it's a valid
jump target.")
@@ -344,7 +353,9 @@ POS defaults to point."
(evil-visual-state-p)))
(push-mark pos t))
- (unless better-jumper--jumping
+ (unless (or
+ better-jumper--jumping
+ (better-jumper--ignore-persp-change))
;; clear out intermediary jumps when a new one is set
(let* ((struct (better-jumper--get-struct))
(jump-list (better-jumper--get-struct-jump-list struct))
@@ -358,6 +369,14 @@ POS defaults to point."
(goto-char pos))
(better-jumper--push))))
+(defun better-jumper--ignore-persp-change ()
+ "Determine if jump is being added as the result of a persp switch."
+ (and
+ better-jumper--before-persp-switch-persp-name
+ better-jumper--before-persp-switch-point-marker
+ (not (string= better-jumper--before-persp-switch-persp-name
(safe-persp-name (get-current-persp))))
+ (equal better-jumper--before-persp-switch-point-marker (point-marker))))
+
;;;###autoload
(defun better-jumper-jump-backward (&optional count)
"Jump backward COUNT positions to previous location in jump list.
@@ -427,13 +446,25 @@ context and will default to current context if not
provided."
;;;;;;;;;;;;;;;;;;
(defun better-jumper--before-persp-deactivate (&rest args)
- "Indicate that perspective switch is in progress. Ignore ARGS."
+ "Indicate that perspective switch is in progress. Ignore ARGS.
+Additionally capture persp and jump information."
(ignore args)
+ (setq better-jumper--before-persp-switch-persp-name (safe-persp-name
(get-current-persp)))
+ (setq better-jumper--before-persp-switch-jumps (better-jumper--get-struct
(better-jumper--get-current-context)))
+ (setq better-jumper--before-persp-switch-point-marker (point-marker))
(setq better-jumper-switching-perspectives t))
(defun better-jumper--on-persp-activate (&rest args)
- "Indicate that perspective switch is completed. Ignore ARGS."
+ "Indicate that perspective switch is completed. Ignore ARGS.
+Optionally clear jump list if jumping to new perspective to prevent
+leaking jump lists."
(ignore args)
+ (when (and
+ better-jumper--before-persp-switch-persp-name
+ better-jumper--before-persp-switch-jumps
+ (not (string= better-jumper--before-persp-switch-persp-name
(safe-persp-name (get-current-persp))))
+ (eq better-jumper--before-persp-switch-jumps (better-jumper--get-struct
(better-jumper--get-current-context))))
+ (better-jumper-clear-jumps))
(setq better-jumper-switching-perspectives nil))
(with-eval-after-load 'persp-mode
- [nongnu] elpa/better-jumper 879ce3939f 14/48: update commentary, (continued)
- [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, 2022/01/09
- [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 <=
- [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
- [nongnu] elpa/better-jumper 205e7a539d 48/48: Merge pull request #19 from skangas/bump-version, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper cc351e3603 40/48: Merge branch 'aaronjensen-fix-byte-compile', ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 5ef53fcee4 41/48: Only require `cl-macs` at compile time, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper 411ecdf6e7 42/48: Minor readme edits, ELPA Syncer, 2022/01/09
- [nongnu] elpa/better-jumper bac7c0bfe6 44/48: Also make `better-jumper-clear-jumps' a command, ELPA Syncer, 2022/01/09