branch: elpa/slime
commit 055c1c98c2b7791162b0e8c994051a7d72208dc1
Author: Stas Boukarev <[email protected]>
Commit: Stas Boukarev <[email protected]>

    slime-definition-at-point: consider anything that starts with "def"
---
 contrib/slime-parse.el | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/contrib/slime-parse.el b/contrib/slime-parse.el
index 825d334a13..8b8a075b09 100644
--- a/contrib/slime-parse.el
+++ b/contrib/slime-parse.el
@@ -214,6 +214,12 @@ For other contexts we return the symbol at point."
            `(:defstruct ,(if (consp name)
                              (car name)
                            name)))
+          ((save-excursion
+            (slime-beginning-of-list)
+            (let ((symbol (read (current-buffer))))
+              (when (and (symbolp symbol)
+                         (string-prefix-p "def" (symbol-name symbol) t))))
+            `(:def ,name)))
           (t
            name))))
 
@@ -307,9 +313,10 @@ Point is placed before the first expression in the list."
 
 (defun slime-definition-at-point (&optional only-functional)
   "Return object corresponding to the definition at point."
-  (let* ((functional '(:defun :defgeneric :defmethod :defmacro 
:define-compiler-macro))
+  (let* ((functional '(:defun :defgeneric :defmethod :defmacro 
:define-compiler-macro :def))
          (all '(:defun :defgeneric :defmacro :define-modify-macro 
:define-compiler-macro 
-                :defmethod :defparameter :defvar :defconstant :defclass 
:defstruct :defpackage))
+                :defmethod :defparameter :defvar :defconstant :defclass 
:defstruct :defpackage
+                :def))
          (toplevel (slime-parse-toplevel-form (if only-functional
                                                   functional
                                                   all))))
@@ -318,7 +325,7 @@ Point is placed before the first expression in the list."
                  (not (member (car toplevel) functional))))
         (error "Not in a definition")
       (slime-dcase toplevel
-        (((:defun :defgeneric) symbol)
+        (((:defun :defgeneric :def) symbol)
          (format "#'%s" symbol))
         (((:defmacro :define-modify-macro) symbol)
          (format "(macro-function '%s)" symbol))

Reply via email to