emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master cac13e36054: Help Elisp xref recognize defclass parent classes


From: Dmitry Gutov
Subject: master cac13e36054: Help Elisp xref recognize defclass parent classes
Date: Sun, 19 Feb 2023 20:03:09 -0500 (EST)

branch: master
commit cac13e360547f95ec64d34f38003dfc7ff1a97ee
Author: Eric Abrahamsen <eric@ericabrahamsen.net>
Commit: Dmitry Gutov <dgutov@yandex.ru>

    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.
---
 lisp/progmodes/elisp-mode.el            | 4 ++++
 test/lisp/progmodes/elisp-mode-tests.el | 5 +++++
 2 files changed, 9 insertions(+)

diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index 1c339d08148..f7cd9e90926 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -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)
diff --git a/test/lisp/progmodes/elisp-mode-tests.el 
b/test/lisp/progmodes/elisp-mode-tests.el
index 57b39a49801..5b6ef88dceb 100644
--- a/test/lisp/progmodes/elisp-mode-tests.el
+++ b/test/lisp/progmodes/elisp-mode-tests.el
@@ -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"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]