Help Elisp xref recognize defclass parent classes

* lisp/progmodes/elisp-mode.el (elisp--xref-infer-namespace):
Handle defclass parents (bug#61640).

* test/lisp/progmodes/elisp-mode-tests.el (elisp-mode-infer-namespace):
New case in the test.
This commit is contained in:
Eric Abrahamsen 2023-02-20 03:01:41 +02:00 committed by Dmitry Gutov
parent 9e745ed3f2
commit cac13e3605
2 changed files with 9 additions and 0 deletions

View file

@ -943,6 +943,10 @@ namespace but with lower confidence."
cl-defmethod cl-defgeneric)))
;; (defun FUNC (... IDENT
'variable)
((and (eql j 2)
(eq j-head 'defclass))
;; (defclass CLASS (... IDENT
'function)
((eq j-head 'cond)
;; (cond ... (... IDENT
'variable)

View file

@ -1003,6 +1003,11 @@ evaluation of BODY."
(should (equal (elisp--xref-infer-namespace p5) 'variable))
(should (equal (elisp--xref-infer-namespace p6) 'function)))
(elisp-mode-test--with-buffer
(concat "(defclass child-class ({p1}parent-1 {p2}parent-2))\n")
(should (equal (elisp--xref-infer-namespace p1) 'function))
(should (equal (elisp--xref-infer-namespace p2) 'function)))
(elisp-mode-test--with-buffer
(concat "(require '{p1}alpha)\n"
"(fboundp '{p2}beta)\n"