emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/marginalia 58ce23c920: Emacs 29: Use bookmark-handler-t


From: ELPA Syncer
Subject: [elpa] externals/marginalia 58ce23c920: Emacs 29: Use bookmark-handler-type
Date: Mon, 5 Dec 2022 20:57:47 -0500 (EST)

branch: externals/marginalia
commit 58ce23c92072a1274633f7567caa1aeca4c1b550
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Emacs 29: Use bookmark-handler-type
    
    Make marginalia--bookmark-type-transform private, since this mechanism will 
be
    discouraged from now on.
---
 marginalia.el | 49 ++++++++++++++++++++++++++-----------------------
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/marginalia.el b/marginalia.el
index 9faf7d8eb9..c6f9ec38bc 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -143,16 +143,6 @@ determine it."
   "Associate commands with a completion category."
   :type '(alist :key-type symbol :value-type symbol))
 
-(defcustom marginalia-bookmark-type-transformers
-  (let ((words (regexp-opt '("handle" "handler" "jump" "bookmark"))))
-    `((,(format "-+%s-+" words) . "-")
-      (,(format "\\`%s-+" words) . "")
-      (,(format "-%s\\'" words) . "")
-      ("\\`default\\'" . "File")
-      (".*" . ,#'capitalize)))
-  "List of bookmark type transformers."
-  :type '(alist :key-type regexp :value-type (choice string function)))
-
 (defgroup marginalia-faces nil
   "Faces used by `marginalia-mode'."
   :group 'marginalia
@@ -308,6 +298,17 @@ determine it."
 
 ;;;; Marginalia mode
 
+(defvar marginalia--bookmark-type-transforms
+  (let ((words (regexp-opt '("handle" "handler" "jump" "bookmark"))))
+    `((,(format "-+%s-+" words) . "-")
+      (,(format "\\`%s-+" words) . "")
+      (,(format "-%s\\'" words) . "")
+      ("\\`default\\'" . "File")
+      (".*" . ,#'capitalize)))
+  "List of bookmark type transformers.
+Relying on this mechanism is discouraged in favor of the
+`bookmark-handler-type' property.")
+
 (defvar marginalia--candw-step 10
   "Round candidate width.")
 
@@ -726,20 +727,22 @@ keybinding since CAND includes it."
 
 (defun marginalia--bookmark-type (bm)
   "Return bookmark type string of BM.
-
-The string is transformed according to 
`marginalia-bookmark-type-transformers'."
+The string is transformed according to `marginalia--bookmark-type-transforms'."
   (let ((handler (or (bookmark-get-handler bm) 'bookmark-default-handler)))
-    ;; Some libraries use lambda handlers instead of symbols. For
-    ;; example the function `xwidget-webkit-bookmark-make-record' is
-    ;; affected. I consider this bad style since then the lambda is
-    ;; persisted.
-    (when-let (str (and (symbolp handler) (symbol-name handler)))
-      (dolist (transformer marginalia-bookmark-type-transformers str)
-        (when (string-match-p (car transformer) str)
-          (setq str
-                (if (stringp (cdr transformer))
-                    (replace-regexp-in-string (car transformer) (cdr 
transformer) str)
-                  (funcall (cdr transformer) str))))))))
+    (and
+     ;; Some libraries use lambda handlers instead of symbols. For
+     ;; example the function `xwidget-webkit-bookmark-make-record' is
+     ;; affected. I consider this bad style since then the lambda is
+     ;; persisted.
+     (symbolp handler)
+     (or (get handler 'bookmark-handler-type)
+         (let ((str (symbol-name handler)))
+           (dolist (transformer marginalia--bookmark-type-transforms str)
+             (when (string-match-p (car transformer) str)
+               (setq str
+                     (if (stringp (cdr transformer))
+                         (replace-regexp-in-string (car transformer) (cdr 
transformer) str)
+                       (funcall (cdr transformer) str))))))))))
 
 (defun marginalia-annotate-bookmark (cand)
   "Annotate bookmark CAND with its file name and front context string."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]