1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-22 07:09:54 +00:00

Fix argument name highlighting in 'describe-function' output

This fixes a regression introduced in
dd38097f0b, which prevented proper
argument name highlighting in function docstrings in the output
buffer of 'describe-function'.

* lisp/help-fns.el (help-do-arg-highlight): New optional arg
that says if we're highlighting arguments in the usage string or
in the docstring.  Tweak generated regex to only expect argument
name to be preceded by function name in usage string.
(help-highlight-arguments): Use new argument for usage string.
This commit is contained in:
Eshel Yaron 2024-05-23 21:59:38 +02:00
parent 52acabcbe8
commit 9d3fb195af
No known key found for this signature in database
GPG Key ID: EF3EE9CA35D78618

View File

@ -362,14 +362,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
"\\("
@ -404,7 +407,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