aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConstantine Vetoshev <gepardcv@gmail.com>2021-06-09 06:44:42 -0700
committerConstantine Vetoshev <gepardcv@gmail.com>2021-06-09 06:44:42 -0700
commita2849f92728e38b2525d1395382b3ac8dc8e42df (patch)
tree8d39798589d7c3f557ded685874e4083cfb1aaa4
parentb166ad87ac102fc6d999636c426311010dd79df9 (diff)
Move xref integration documentation and rename variables.
-rw-r--r--README.md14
-rw-r--r--perspective.el15
2 files changed, 20 insertions, 9 deletions
diff --git a/README.md b/README.md
index 9aea088..de39c52 100644
--- a/README.md
+++ b/README.md
@@ -208,10 +208,7 @@ If you want to group buffers by persp-name in ibuffer buffer, use
(unless (eq ibuffer-sorting-mode 'alphabetic)
(ibuffer-do-sort-by-alphabetic))))
```
-**Xref**: You can isolate `xref--marker-ring` between perspectives by:
-```
-(add-hook 'persp-switch-hook #'persp-set-xref--marker-ring)
-```
+
**Helm**: Perspective ships with buffer-listing advice for Helm, so Helm's
buffer listing code should be automatically Perspective-aware when `persp-mode`
is enabled. (Older versions of Helm relied on the machinery of `ido-mode` for
@@ -266,6 +263,15 @@ to use the replacements:
```
+### xref integration
+
+Users of the the built-in Emacs [xref](https://www.gnu.org/software/emacs/manual/html_node/emacs/Xref.html) cross-referencing system can isolate the xref marker ring (`xref--marker-ring`) between perspectives with this hook:
+
+```
+(add-hook 'persp-switch-hook #'persp-set-xref-marker-ring)
+```
+
+
## Saving Sessions to Disk
A pair of functions, `persp-state-save` and `persp-state-load`, implement
diff --git a/perspective.el b/perspective.el
index 079095e..1172588 100644
--- a/perspective.el
+++ b/perspective.el
@@ -1694,17 +1694,22 @@ restored."
(pop-to-buffer ibuf)
(ibuffer-update nil t)))))
+
;;; --- xref code
-(defvar persp-xref--marker-ring (make-hash-table :test 'equal))
+(defvar persp--xref-marker-ring (make-hash-table :test 'equal))
+
;;;###autoload
-(defun persp-set-xref--marker-ring ()
+(defun persp-set-xref-marker-ring ()
"Set xref--marker-ring per persp."
+ (defvar xref-marker-ring-length)
+ (defvar xref--marker-ring)
(let ((persp-curr-name (persp-name (persp-curr))))
- (unless (gethash persp-curr-name persp-xref--marker-ring)
+ (unless (gethash persp-curr-name persp--xref-marker-ring)
(puthash persp-curr-name (make-ring xref-marker-ring-length)
- persp-xref--marker-ring))
- (setq xref--marker-ring (gethash persp-curr-name persp-xref--marker-ring))))
+ persp--xref-marker-ring))
+ (setq xref--marker-ring (gethash persp-curr-name persp--xref-marker-ring))))
+
;;; --- done