From 9e8d8e1a037b0f8d4f06dfd384c27a894f442de7 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Fri, 25 Jun 2021 17:16:28 +0200 Subject: [PATCH] Make (find-face-definition 'default) work more reliably * lisp/emacs-lisp/find-func.el (find-function--defface): New function (bug#30230). (find-function-regexp-alist): Use it to skip past definitions inside comments and strings. --- lisp/emacs-lisp/find-func.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 58876a45e19..7bc3e6b25ff 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -123,10 +123,18 @@ should insert the feature name." :group 'xref :version "25.1") +(defun find-function--defface (symbol) + (catch 'found + (while (re-search-forward (format find-face-regexp symbol) nil t) + (unless (ppss-comment-or-string-start + (save-excursion (syntax-ppss (match-beginning 0)))) + ;; We're not in a comment or a string. + (throw 'found t))))) + (defvar find-function-regexp-alist '((nil . find-function-regexp) (defvar . find-variable-regexp) - (defface . find-face-regexp) + (defface . find-function--defface) (feature . find-feature-regexp) (defalias . find-alias-regexp)) "Alist mapping definition types into regexp variables. -- 2.39.2