branch: externals/inspector commit 838b08706a44a096a0dd7f1cda4b454abafbd267 Author: Mariano Montone <marianomont...@gmail.com> Commit: Mariano Montone <marianomont...@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))