From: Eshel Yaron Date: Thu, 23 May 2024 19:59:38 +0000 (+0200) Subject: ; Fix argument highlighting in 'describe-function' output X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3f813788a6a995bd35657b5bfde05f2d359e6eba;p=emacs.git ; Fix argument highlighting in 'describe-function' output --- diff --git a/lisp/help-fns.el b/lisp/help-fns.el index e043bc8750d..051362fcd78 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -405,14 +405,17 @@ if the variable `help-downcase-arguments' is non-nil." (propertize (if help-downcase-arguments (downcase arg) arg) 'face 'help-argument-name)) -(defun help-do-arg-highlight (doc args) +(defun help-do-arg-highlight (doc args &optional usage-p) (with-syntax-table (make-syntax-table emacs-lisp-mode-syntax-table) (modify-syntax-entry ?\- "w") (dolist (arg args) (setq doc (replace-regexp-in-string ;; This is heuristic, but covers all common cases ;; except ARG1-ARG2 - (concat "([^ ]+ .*" ; skip function name + (concat (when usage-p + ;; Skip function name in usage string + ;; (Bug#65580). + "([^ ]+ .*") "\\<" ; beginning of word "\\(?:[a-z-]*-\\)?" ; for xxx-ARG "\\(" @@ -447,7 +450,7 @@ if the variable `help-downcase-arguments' is non-nil." (search-backward "(") (goto-char (scan-sexps (point) 1))))) ;; Highlight arguments in the USAGE string - (setq usage (help-do-arg-highlight (buffer-string) args)) + (setq usage (help-do-arg-highlight (buffer-string) args t)) ;; Highlight arguments in the DOC string (setq doc (and doc (help-do-arg-highlight doc args)))))) ;; Return value is like the one from help-split-fundoc, but highlighted