diff --git a/tools/clog-builder-scope.lisp b/tools/clog-builder-scope.lisp
index fac154d..1b3ed4e 100644
--- a/tools/clog-builder-scope.lisp
+++ b/tools/clog-builder-scope.lisp
@@ -38,6 +38,11 @@
(let ((value (format nil "~A" object)))
(setf value (ppcre:regex-replace-all "<" value "<"))
(setf value (ppcre:regex-replace-all ">" value ">"))))
+ (get-package (sym)
+ (handler-case
+ (escape-lisp (package-name (symbol-package sym)))
+ (error ()
+ (escape-lisp sym))))
(add-class (node class object)
(let* ((is-root (typep node 'clog-panel))
(class-tree (create-clog-tree (if is-root
@@ -47,8 +52,11 @@
:indent-level (if is-root
0
(1+ (indent-level node)))
+ :on-context-menu (lambda (obj)
+ (on-new-sys-browser obj
+ :search (get-name (class-name class))))
:content (format nil "Class: ~A : Object Value ~A"
- (escape-lisp (class-name class)) (escape-lisp object)))))
+ (get-name (class-name class)) (escape-lisp object)))))
(create-clog-tree (tree-root class-tree)
:node-html "👪"
:content "Precedence List"
@@ -76,16 +84,27 @@
:visible is-root
:indent-level (1+ (indent-level class-tree))
:fill-function (lambda (obj)
- (on-method obj class)))
- ))
+ (on-method obj class)))))
+ (get-name (sym)
+ (escape-lisp (if (typep sym 'cons)
+ (format nil "(~A ~A:~A)"
+ (first sym)
+ (get-package (second sym))
+ (second sym))
+ (format nil "~A:~A"
+ (get-package sym)
+ sym))))
(on-generic (obj class)
(mapcar (lambda (item)
(create-clog-tree (tree-root obj)
:indent-level (1+ (indent-level obj))
:node-html "🔧"
:visible nil
+ :on-context-menu (lambda (obj)
+ (on-new-sys-browser obj
+ :search (get-name (closer-mop:generic-function-name item))))
:content (format nil "~A ~A"
- (escape-lisp (closer-mop:generic-function-name item))
+ (get-name (closer-mop:generic-function-name item))
(escape-lisp (closer-mop:generic-function-lambda-list item)))))
(closer-mop:specializer-direct-generic-functions class)))
(on-method (obj class)
@@ -94,8 +113,13 @@
:indent-level (1+ (indent-level obj))
:node-html "👟"
:visible nil
+ :on-context-menu (lambda (obj)
+ (on-new-sys-browser obj
+ :search (get-name
+ (closer-mop:generic-function-name
+ (closer-mop:method-generic-function item)))))
:content (format nil "~A ~A"
- (escape-lisp (closer-mop:generic-function-name (closer-mop:method-generic-function item)))
+ (get-name (closer-mop:generic-function-name (closer-mop:method-generic-function item)))
(escape-lisp (closer-mop:method-lambda-list item)))))
(closer-mop:specializer-direct-methods class)))
(on-precedences (obj class object)
@@ -109,12 +133,15 @@
:indent-level (1+ (indent-level obj))
:node-html "🖈"
:visible nil
+ :on-context-menu (lambda (obj)
+ (on-new-sys-browser obj
+ :search (get-name (closer-mop:slot-definition-name slot))))
:fill-function (lambda (obj)
(let* ((object (slot-value object (closer-mop:slot-definition-name slot)))
(class (class-of object)))
(add-class obj class object)))
:content (format nil "~A Object Value = ~A"
- (escape-lisp (closer-mop:slot-definition-name slot))
+ (get-name (closer-mop:slot-definition-name slot))
(escape-lisp (slot-value object (closer-mop:slot-definition-name slot))))))
(closer-mop:class-slots class)))
(on-change (object)