diff options
| author | Giap Tran <txgvnn@gmail.com> | 2021-06-07 20:36:18 +0700 |
|---|---|---|
| committer | Giap Tran <txgvnn@gmail.com> | 2021-06-07 20:40:24 +0700 |
| commit | 07512c77bbc1057d1b51a8cb3ce0359f575d8166 (patch) | |
| tree | fbd01f6be0d3f66e4cb14904a8077be0d53e86b3 | |
| parent | b37c6756700a167742c8ab06fa5a850d9d94f4bd (diff) | |
Isolate xref--marker-ring between perspectives
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | perspective.el | 11 |
2 files changed, 15 insertions, 1 deletions
@@ -208,7 +208,10 @@ 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 diff --git a/perspective.el b/perspective.el index 680f341..079095e 100644 --- a/perspective.el +++ b/perspective.el @@ -1694,6 +1694,17 @@ restored." (pop-to-buffer ibuf) (ibuffer-update nil t))))) +;;; --- xref code + +(defvar persp-xref--marker-ring (make-hash-table :test 'equal)) +;;;###autoload +(defun persp-set-xref--marker-ring () + "Set xref--marker-ring per persp." + (let ((persp-curr-name (persp-name (persp-curr)))) + (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)))) ;;; --- done |
