diff options
| author | Constantine Vetoshev <gepardcv@gmail.com> | 2021-06-09 06:44:42 -0700 |
|---|---|---|
| committer | Constantine Vetoshev <gepardcv@gmail.com> | 2021-06-09 06:44:42 -0700 |
| commit | a2849f92728e38b2525d1395382b3ac8dc8e42df (patch) | |
| tree | 8d39798589d7c3f557ded685874e4083cfb1aaa4 | |
| parent | b166ad87ac102fc6d999636c426311010dd79df9 (diff) | |
Move xref integration documentation and rename variables.
| -rw-r--r-- | README.md | 14 | ||||
| -rw-r--r-- | perspective.el | 15 |
2 files changed, 20 insertions, 9 deletions
@@ -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 |
