branch: externals/marginalia commit 785297d9f98d4d23a1bf9f047e6aeca889e3f9ea Author: Omar Antolín <omar.anto...@gmail.com> Commit: Omar Antolín <omar.anto...@gmail.com>
Indicate advised functions with an asterisk Part of the work on issue #19. Should we apply a face to the asterisk? --- marginalia.el | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/marginalia.el b/marginalia.el index 2020a3d..b6d795d 100644 --- a/marginalia.el +++ b/marginalia.el @@ -291,6 +291,16 @@ This hash table is needed to speed up `marginalia-annotate-command-binding'.") (marginalia-annotate-command-binding cand) (marginalia-annotate-symbol cand))) +(defconst marginalia--advice-regexp + (rx bos + (1+ (seq (? "This function has ") + (or ":before" ":after" ":around" ":override" + ":before-while" ":before-until" ":after-while" + ":after-until" ":filter-args" ":filter-return") + " advice: " (0+ nonl) "\n")) + "\n") + "Regexp to match lines about advice in function documentation strings.") + (defun marginalia-annotate-symbol (cand) "Annotate symbol CAND with its documentation string." (when-let ((sym (intern-soft cand))) @@ -298,16 +308,11 @@ This hash table is needed to speed up `marginalia-annotate-command-binding'.") (cond ((fboundp sym) (when-let ((doc (ignore-errors (documentation sym)))) - (replace-regexp-in-string - (rx bos - (1+ (seq (? "This function has ") - (or ":before" ":after" ":around" ":override" - ":before-while" ":before-until" ":after-while" - ":after-until" ":filter-args" ":filter-return") - " advice: " (0+ nonl) "\n")) - "\n") - "" - doc))) + (if (string-match-p marginalia--advice-regexp doc) + (concat "*" + (replace-regexp-in-string + marginalia--advice-regexp "" doc)) + (concat " " doc)))) ((facep sym) (documentation-property sym 'face-documentation)) (t (documentation-property sym 'variable-documentation))))))