branch: externals/inspector commit 56579dae8ad3ec9a997127ffc6263457d48f9dc0 Author: Mariano Montone <marianomont...@gmail.com> Commit: Mariano Montone <marianomont...@gmail.com>
tree-inspector: hash-table inspector --- tree-inspector.el | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/tree-inspector.el b/tree-inspector.el index 67e4b5f56f..2a8e52c993 100644 --- a/tree-inspector.el +++ b/tree-inspector.el @@ -49,6 +49,11 @@ (treeview-set-node-name node (prin1-to-string object)) node)) +(cl-defmethod tree-inspector--make-node ((object symbol)) + (let ((node (treeview-new-node))) + (treeview-set-node-name node (prin1-to-string object)) + node)) + (cl-defmethod tree-inspector--make-node ((object string)) (let ((node (treeview-new-node))) (treeview-set-node-name node @@ -71,6 +76,23 @@ object)) node)))) +(cl-defmethod tree-inspector--make-node ((object hash-table)) + "tree-inspector node for hash-tables." + (let ((node (treeview-new-node))) + (treeview-set-node-name node (prin1-to-string object)) + (let (children) + (dolist (key (hash-table-keys object)) + (let ((child (treeview-new-node)) + (value (gethash key object))) + (treeview-set-node-name child (format "%s=%s" key value)) + (treeview-set-node-children child + (list + (tree-inspector--make-node key) + (tree-inspector--make-node value))) + (push child children))) + (treeview-set-node-children node children) + node))) + (defun tree-inspector--get-indent (node) "Return the indentation of NODE." (let ((indent ()) @@ -136,7 +158,6 @@ in a format understood by `kbd'. Commands a names of Lisp functions." :group 'tree-inspector :type 'string) - (defun tree-inspector-inspect (data) (let ((buffer (get-buffer-create (format "*tree-inspector: %s*" data)))) (with-current-buffer buffer @@ -169,7 +190,12 @@ in a format understood by `kbd'. Commands a names of Lisp functions." (local-set-key (kbd "q") #'kill-current-buffer) (switch-to-buffer buffer)))) +;; (tree-inspector-inspect 2) +;; (tree-inspector-inspect (list 1 2 3)) +;; (tree-inspector-inspect (list 1 2 3 (list "lala" "sf"))) + ;; (tree-inspector-inspect (let ((tab (make-hash-table))) + ;; (puthash 'a 22 tab) + ;; (puthash 'b 44 tab) + ;; tab)) + -(tree-inspector-inspect 2) -(tree-inspector-inspect (list 1 2 3)) -(tree-inspector-inspect (list 1 2 3 (list "lala" "sf")))