[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/marginalia 7df0e53 177/241: Add marginalia-bookmark-typ
From: |
Stefan Monnier |
Subject: |
[elpa] externals/marginalia 7df0e53 177/241: Add marginalia-bookmark-type-transformers |
Date: |
Fri, 28 May 2021 20:49:22 -0400 (EDT) |
branch: externals/marginalia
commit 7df0e53ab99e22c631cd860aea38b5e96b065914
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Add marginalia-bookmark-type-transformers
Fix #56
---
marginalia.el | 32 +++++++++++++++++++++++++++++---
1 file changed, 29 insertions(+), 3 deletions(-)
diff --git a/marginalia.el b/marginalia.el
index 2cbd87f..53926eb 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -151,6 +151,14 @@ determine it."
"Associate commands with a completion category."
:type '(alist :key-type symbol :value-type symbol))
+(defcustom marginalia-bookmark-type-transformers
+ `(("^bookmark-\\(.*?\\)-handler$" . "\\1")
+ ("default" . "File")
+ ("^\\(.*?\\)-bookmark-jump\\(?:-handler\\)?$" . "\\1")
+ (".*" . ,#'capitalize))
+ "List of bookmark type transformers."
+ :type 'alist)
+
(defgroup marginalia-faces nil
"Faces used by `marginalia-mode'."
:group 'marginalia
@@ -160,6 +168,10 @@ determine it."
'((t :inherit font-lock-keyword-face))
"Face used to highlight keys in `marginalia-mode'.")
+(defface marginalia-type
+ '((t :inherit marginalia-key))
+ "Face used to highlight types in `marginalia-mode'.")
+
(defface marginalia-char
'((t :inherit marginalia-key))
"Face used to highlight char in `marginalia-mode'.")
@@ -406,7 +418,7 @@ t cl-type"
(concat
(marginalia-annotate-binding cand)
(marginalia--fields
- ((marginalia--symbol-class sym) :face 'marginalia-modified)
+ ((marginalia--symbol-class sym) :face 'marginalia-type)
((cond
((fboundp sym) (marginalia--function-doc sym))
((facep sym) (documentation-property sym 'face-documentation))
@@ -431,7 +443,7 @@ Similar to `marginalia-annotate-symbol', but does not show
symbol class."
"Annotate variable CAND with its documentation string."
(when-let (sym (intern-soft cand))
(marginalia--fields
- ((marginalia--symbol-class sym) :face 'marginalia-modified)
+ ((marginalia--symbol-class sym) :face 'marginalia-type)
((let ((print-escape-newlines t)
(print-escape-control-characters t)
(print-escape-multibyte t))
@@ -479,7 +491,7 @@ Similar to `marginalia-annotate-symbol', but does not show
symbol class."
((if (and (boundp mode) (symbol-value mode))
(propertize "On" 'face 'marginalia-on)
(propertize "Off" 'face 'marginalia-off)) :width 3)
- ((if (local-variable-if-set-p mode) "Local" "Global") :width 6 :face
'marginalia-modified)
+ ((if (local-variable-if-set-p mode) "Local" "Global") :width 6 :face
'marginalia-type)
(lighter-str :width 14 :face 'marginalia-lighter)
((marginalia--function-doc mode)
:truncate marginalia-truncate-width :face 'marginalia-documentation)))))
@@ -500,11 +512,25 @@ Similar to `marginalia-annotate-symbol', but does not
show symbol class."
(t (propertize (or (package-desc-status desc) "orphan") 'face
'marginalia-installed))) :width 10)
((package-desc-summary desc) :truncate marginalia-truncate-width :face
'marginalia-documentation))))
+(defun marginalia--bookmark-type (bm)
+ "Return bookmark type string of BM.
+
+The string is transformed according to
`marginalia-bookmark-type-transformers'."
+ (let ((str (symbol-name (or (alist-get 'handler bm)
+ 'bookmark-default-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)))))))
+
(defun marginalia-annotate-bookmark (cand)
"Annotate bookmark CAND with its file name and front context string."
(when-let ((bm (bookmark-get-bookmark-record (assoc cand bookmark-alist))))
(let ((front (alist-get 'front-context-string bm)))
(marginalia--fields
+ ((marginalia--bookmark-type bm) :width 10 :face 'marginalia-type)
((alist-get 'filename bm) :width 40 :face 'marginalia-file-name)
((if (or (not front) (string= front ""))
""
- [elpa] externals/marginalia e97979a 240/241: Remove License header, (continued)
- [elpa] externals/marginalia e97979a 240/241: Remove License header, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 09aaad9 159/241: Revert "fix #46: affixation suffix must not be nil, it must be a string", Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 42977b4 162/241: add comment, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 65da400 055/241: marginalia-annotate-package: show package version, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 501a3b3 056/241: simplify marginalia--align, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 4ffd1a9 071/241: add marginalia-annotate-input-method, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 75e9e9b 070/241: add marginalia-annotate-charset, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia c940a49 236/241: Use more restricted regexp to detect remote completion, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia feca4f1 100/241: add support for project.el, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 65d6b5d 102/241: fix package annotation, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 7df0e53 177/241: Add marginalia-bookmark-type-transformers,
Stefan Monnier <=
- [elpa] externals/marginalia 2b926ae 190/241: Avoid annotations for host and remote path completions, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia e4b3fcd 191/241: marginalia--remote-p: handle shadow paths, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 3210152 033/241: add comment to marginalia--full-candidate, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia f9ca52c 032/241: Fallback for when full candidate is requested outside of minibuffer, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 6789da8 034/241: fix typo in marginalia-set-command-annotator, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia f39556b 043/241: fix marginalia--full-candidate for selectrum, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia fe5d5db 047/241: add faces: marginalia-file-modes, marginalia-file-owner, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 2eec2dc 060/241: fix warnings, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia d0afe4a 068/241: add melpa badge, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 7394690 078/241: add marginalia-annotate-virtual-buffer for consult-buffer, Stefan Monnier, 2021/05/28