From: Juri Linkov Date: Thu, 3 Jun 2021 20:41:30 +0000 (+0300) Subject: * lisp/help-fns.el (help--symbol-class): New function. X-Git-Tag: emacs-28.0.90~2201 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d4ae640a3720e11fc8736a3530bba50520412023;p=emacs.git * lisp/help-fns.el (help--symbol-class): New function. Refactored from help--symbol-completion-table-affixation. https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00066.html --- diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 5a805a23028..133763add15 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -126,29 +126,35 @@ with the current prefix. The files are chosen according to :group 'help :version "26.3") +(defun help--symbol-class (s) + "Return symbol class characters for symbol S." + (when (stringp s) + (setq s (intern-soft s))) + (cond ((commandp s) + "c") ; command + ((eq (car-safe (symbol-function s)) 'macro) + "m") ; macro + ((fboundp s) + "f") ; function + ((custom-variable-p s) + "u") ; user option + ((boundp s) + "v") ; variable + ((facep s) + "a") ; fAce + ((and (fboundp 'cl-find-class) + (cl-find-class s)) + "t") ; CL type + (" ") ; something else + )) + (defun help--symbol-completion-table-affixation (completions) (mapcar (lambda (c) (let* ((s (intern c)) (doc (condition-case nil (documentation s) (error nil))) (doc (and doc (substring doc 0 (string-match "\n" doc))))) (list c (propertize - (concat (cond ((commandp s) - "c") ; command - ((eq (car-safe (symbol-function s)) 'macro) - "m") ; macro - ((fboundp s) - "f") ; function - ((custom-variable-p s) - "u") ; user option - ((boundp s) - "v") ; variable - ((facep s) - "a") ; fAce - ((and (fboundp 'cl-find-class) - (cl-find-class s)) - "t") ; CL type - (" ")) ; something else - " ") ; prefix separator + (concat (help--symbol-class s) " ") ; prefix separator 'face 'completions-annotations) (if doc (propertize (format " -- %s" doc) 'face 'completions-annotations)