emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] externals/inspector 56579dae8a 05/39: tree-inspector: hash-table


From: ELPA Syncer
Subject: [elpa] externals/inspector 56579dae8a 05/39: tree-inspector: hash-table inspector
Date: Sat, 10 Sep 2022 17:57:46 -0400 (EDT)

branch: externals/inspector
commit 56579dae8ad3ec9a997127ffc6263457d48f9dc0
Author: Mariano Montone <marianomontone@gmail.com>
Commit: Mariano Montone <marianomontone@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")))



reply via email to

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