[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/marginalia 80fa320 016/241: Introduce list of classifie
From: |
Stefan Monnier |
Subject: |
[elpa] externals/marginalia 80fa320 016/241: Introduce list of classifiers |
Date: |
Fri, 28 May 2021 20:48:48 -0400 (EDT) |
branch: externals/marginalia
commit 80fa320fd14c741f6c8fb152cf0a9b4f0d0b1a7e
Author: Omar Antolín <omar.antolin@gmail.com>
Commit: Omar Antolín <omar.antolin@gmail.com>
Introduce list of classifiers
The new variable marginalia-classifiers will contain functions that
are run one after another to attempt to determine the category
metadatum. The existing logic for determining the category has been
moved into marginalia-classify-by-command-name.
---
marginalia.el | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/marginalia.el b/marginalia.el
index 7559307..0b6dd71 100644
--- a/marginalia.el
+++ b/marginalia.el
@@ -73,6 +73,15 @@ Annotations are only shown if `marginalia-mode' is enabled."
:type '(alist :key-type symbol :value-type function)
:group 'marginalia)
+(defcustom marginalia-classifiers
+ '(marginalia-classify-by-command-name)
+ "List of functions to determine current completion category.
+Each function should take no arguments and return a symbol
+indicating the category, or nil to indicate it could not
+determine it."
+ :type 'hook
+ :group 'marginalia)
+
(defcustom marginalia-command-category-alist
'((execute-extended-command . command)
(customize-face . face)
@@ -207,6 +216,11 @@ Annotations are only shown if `marginalia-mode' is
enabled."
(mapcar (lambda (cand) (concat cand (funcall annotate cand))) candidates)
candidates))
+(defun marginalia-classify-by-command-name ()
+ "Lookup category for current command."
+ (and marginalia--this-command
+ (alist-get marginalia--this-command marginalia-command-category-alist)))
+
(defun marginalia--completion-metadata-get (_metadata prop)
"Advice for `completion-metadata-get'.
Replaces the category and annotation function.
@@ -219,8 +233,7 @@ PROP is the property which is looked up."
(when-let (cat (marginalia--category-type))
(alist-get cat marginalia-annotator-alist)))
('category
- (and marginalia--this-command
- (alist-get marginalia--this-command
marginalia-command-category-alist)))))
+ (run-hook-with-args-until-success 'marginalia-classifiers))))
(defun marginalia--minibuffer-setup ()
"Setup minibuffer for `marginalia-mode'.
- [elpa] externals/marginalia eecc6e2 006/241: Get key binding active in next window instead of in the minibuffer, (continued)
- [elpa] externals/marginalia eecc6e2 006/241: Get key binding active in next window instead of in the minibuffer, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 863e07b 004/241: experimental: remove selectrum-specifics (may not work out!), Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia e863b6c 007/241: Show key bindings from minibuffer-selected-window, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 4780a6a 009/241: marginalia works with icomplete-vertical now!, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 237a620 001/241: initial prototype, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia c47576c 010/241: add configuration example, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia a6dfb38 003/241: add todos, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia bdbbee2 005/241: add very basic readme, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 6077206 008/241: Ignore byte-compiled files, autoloads and *-pkg.el files, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 0c090f3 011/241: improve readme, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 80fa320 016/241: Introduce list of classifiers,
Stefan Monnier <=
- [elpa] externals/marginalia ca21d30 029/241: fix typo in the readme, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 655f03b 035/241: introduce marginalia-annotators-(light|heavy), remove marginalia-set-command-annotator, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 4cb6d2b 039/241: marginalia-annotate-file: add modes, user and group, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia ed74ca9 040/241: add marginalia-toggle-annotators, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 57b1176 051/241: marginalia-annotate-command-binding: only store the binding in the hash table, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 6537c37 015/241: Shorten first line of docstring using our "annotator" term, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 69ec4d7 017/241: Remove unused function, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 28defd6 014/241: Introduce new name "annotator" for annotation functions, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia e2af1d3 019/241: Make marginalia-prompt-categories an alist of regexps and categories, Stefan Monnier, 2021/05/28
- [elpa] externals/marginalia 1c8ef02 020/241: Remove unused marginalia--metadata function, Stefan Monnier, 2021/05/28