16 Aug 02:44
improved swank browsing for java objects
From: Russ McManus <russell_mcmanus <at> yahoo.com>
Subject: improved swank browsing for java objects
Newsgroups: gmane.editors.j.devel
Date: 2008-08-16 00:48:53 GMT
Subject: improved swank browsing for java objects
Newsgroups: gmane.editors.j.devel
Date: 2008-08-16 00:48:53 GMT
I got frustrated that I couldn't arbitrarily inspect java classes,
methods, and objects, and came up with the following.
Please give it a try and let me know what you think.
Note that I tried to implement this with EQL specializers and
DEFMETHOD, but apparently this is presently beyond the capability of
ABCL's CLOS implementation.
-russ
(defmethod swank:emacs-inspect ((java-object java-object))
(emacs-inspect-java java-object))
(defun swank-backend::emacs-inspect-java-class (jclass)
(flet ((jclass->name (jclass)
(let* ((s (jclass-name jclass))
(prefix "java.lang.")
(lang-pos (search prefix s)))
(if lang-pos
(subseq s (+ lang-pos (length prefix)))
s))))
(append
`("Java Class: " ,(princ-to-string jclass) (:newline))
`("Methods" (:newline))
(loop for method across (jclass-methods jclass)
for i = 0 then (1+ i)
append (let ((args (mapcar #'jclass->name (coerce (jmethod-params method) 'list))))
`(,(format nil "[~2D] ~A ~A(~{~A~^,~}): ~40T"
(Continue reading)
RSS Feed