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

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

[elpa] externals/inspector 838b08706a 02/39: tree-inspector work


From: ELPA Syncer
Subject: [elpa] externals/inspector 838b08706a 02/39: tree-inspector work
Date: Sat, 10 Sep 2022 17:57:46 -0400 (EDT)

branch: externals/inspector
commit 838b08706a44a096a0dd7f1cda4b454abafbd267
Author: Mariano Montone <marianomontone@gmail.com>
Commit: Mariano Montone <marianomontone@gmail.com>

    tree-inspector work
---
 tree-inspector.el | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 51 insertions(+), 5 deletions(-)

diff --git a/tree-inspector.el b/tree-inspector.el
index d69389e0b5..5ce8a12df6 100644
--- a/tree-inspector.el
+++ b/tree-inspector.el
@@ -59,9 +59,43 @@
       (treeview-set-node-children node
        (mapcar (lambda (item)
                 (let ((child (tree-inspector--make-node item)))
-                  (treeview-set-node-parent child node)
+                  ;;(treeview-set-node-parent child node)
                   child))
-              object))))))
+              object))
+      node))))
+
+(defgroup tree-inspector nil
+  "tree-inspector"
+  :group 'applications)
+
+(defcustom tree-inspector-control-keymap
+  '(("<mouse-1>" . treeview-toggle-node-state-at-event)
+    ("<mouse-2>" . treeview-toggle-node-state-at-event)
+    ("<mouse-3>" . dir-treeview-popup-node-menu-at-mouse)
+    ("RET" . treeview-toggle-node-state-at-point)
+    ("SPC" . treeview-toggle-node-state-at-point)
+    ("e" . tree-inspector-popup-node-menu-at-point))
+  "Keymap of the control symbols.
+A list of assignments of key sequences to commands.  Key sequences are strings
+in a format understood by `kbd'.  Commands a names of Lisp functions."
+  :group 'tree-inspector
+  :type '(repeat (cons (string :tag "Key    ") (function :tag "Command"))))
+
+(defcustom tree-inspector-label-keymap
+  '(("<mouse-1>" . tree-inspector-inspect-object-at-event)
+    ("<mouse-2>" . tree-inspector-inspect-object-at-event)
+    ("<mouse-3>" . tree-inspector-popup-node-menu-at-mouse)
+    ("RET" . tree-inspector-inspect-object-at-point)
+    ("e" . tree-inspector-popup-node-menu-at-point)
+    ("<C-down-mouse-1>" . ignore)
+    ("<C-mouse-1>" . treeview-toggle-select-node-at-event)
+    ("<S-down-mouse-1>" . ignore)
+    ("<S-mouse-1>" . treeview-select-gap-above-node-at-event))
+  "Keymap of the labels.
+A list of assignments of key sequences to commands.  Key sequences are strings
+in a format understood by `kbd'.  Commands a names of Lisp functions."
+  :group 'tree-inspector
+  :type '(repeat (cons (string :tag "Key    ") (function :tag "Command"))))
 
 (defun tree-inspector-inspect (data)
   (let ((buffer (get-buffer-create (format "*tree-inspector: %s*" data))))
@@ -70,16 +104,28 @@
       ;;                 (lambda () (tree-inspector--make-node data)))
       (setq-local treeview-get-indent-function
                  (lambda (node) (list " ")))
-      (setq-local treeview-get-label-function
-                 #'first)
+      (setq-local treeview-get-label-function #'first)
       (setq-local treeview-get-control-function
                  (lambda (node)
                    (if (treeview-get-node-children node)
                        "[+]"
                      nil)))
+      (setq-local treeview-update-node-children-function
+                 (cl-constantly nil))
+      (setq-local treeview-after-node-expanded-function
+                 (cl-constantly nil))
+      (setq-local treeview-after-node-folded-function
+                 (cl-constantly nil))
+      (setq-local treeview-get-control-keymap-function
+                 (lambda (node)
+                   (treeview-make-keymap tree-inspector-control-keymap)))
+      (setq-local treeview-get-label-keymap-function
+                 (lambda (node)
+                   (treeview-make-keymap tree-inspector-label-keymap)))
       (treeview-display-node (tree-inspector--make-node data))
-
+      (setq buffer-read-only t)
       (display-buffer buffer))))
 
+
 (tree-inspector-inspect 2)
 (tree-inspector-inspect (list 1 2 3))



reply via email to

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