branch: elpa/magit
commit 4067c7bfcb5360b1726ee1015ca077889ef96cf7
Author: Jonas Bernoulli <jo...@bernoul.li>
Commit: Jonas Bernoulli <jo...@bernoul.li>

    magit-bookmark-get-value: New generic function
    
    This makes it possible to use Magit's bookmark support in Forge.
---
 lisp/magit-bookmark.el | 5 +++++
 lisp/magit-section.el  | 5 +++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/lisp/magit-bookmark.el b/lisp/magit-bookmark.el
index 963b7e1caf..bbb1215156 100644
--- a/lisp/magit-bookmark.el
+++ b/lisp/magit-bookmark.el
@@ -37,6 +37,11 @@
 (cl-defmethod magit-bookmark-get-filename (&context (major-mode magit-mode))
   (magit-toplevel))
 
+(cl-defmethod magit-bookmark-get-value
+  (bookmark &context (major-mode magit-mode))
+  (dolist (var (get major-mode 'magit-bookmark-variables))
+    (bookmark-prop-set bookmark var (symbol-value var))))
+
 (cl-defmethod magit-bookmark-get-buffer-create
   (bookmark (mode (derived-mode magit-mode)))
   (let ((default-directory (bookmark-get-filename bookmark))
diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index c6b6c97187..847ec7e9ec 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -2496,6 +2496,8 @@ necessary.  For use as `imenu-default-goto-function' in
 (cl-defgeneric magit-bookmark-get-filename ()
   (or (buffer-file-name) (buffer-name)))
 
+(cl-defgeneric magit-bookmark-get-value (bookmark mode))
+
 (cl-defgeneric magit-bookmark--get-child-value (section)
   (oref section value))
 
@@ -2517,8 +2519,7 @@ and the buffer-local values of the variables referenced 
in its
         (bookmark-prop-set bookmark 'mode     major-mode)
         (bookmark-prop-set bookmark 'filename (magit-bookmark-get-filename))
         (bookmark-prop-set bookmark 'defaults (list (magit-bookmark-name)))
-        (dolist (var (get major-mode 'magit-bookmark-variables))
-          (bookmark-prop-set bookmark var (symbol-value var)))
+        (magit-bookmark-get-value bookmark)
         (bookmark-prop-set
          bookmark 'magit-hidden-sections
          (seq-keep (##and (oref % hidden)

Reply via email to