[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/inspector 49586fc18b 23/39: tree-inspector: buffers, wi
From: |
ELPA Syncer |
Subject: |
[elpa] externals/inspector 49586fc18b 23/39: tree-inspector: buffers, windows, overlays, frames |
Date: |
Sat, 10 Sep 2022 17:57:48 -0400 (EDT) |
branch: externals/inspector
commit 49586fc18b23a2fb227ce7b09903dd5958d0897d
Author: Mariano Montone <marianomontone@gmail.com>
Commit: Mariano Montone <marianomontone@gmail.com>
tree-inspector: buffers, windows, overlays, frames
---
tree-inspector.el | 63 ++++++++++++++++++++++++++++++-------------------------
1 file changed, 34 insertions(+), 29 deletions(-)
diff --git a/tree-inspector.el b/tree-inspector.el
index c16303bbda..6587b03604 100644
--- a/tree-inspector.el
+++ b/tree-inspector.el
@@ -164,8 +164,8 @@ in a format understood by `kbd'. Commands a names of Lisp
functions."
(when children
(tree-inspector--set-node-children node children))))))
-(cl-defgeneric tree-inspector--node-children (node)
- (:documentation "Return the NODE children treeview nodes."))
+(cl-defgeneric tree-inspector--node-children (object)
+ (:documentation "Return the OBJECT children treeview nodes."))
(cl-defmethod tree-inspector--node-children ((object t))
"Objects have no children by default."
@@ -213,9 +213,7 @@ in a format understood by `kbd'. Commands a names of Lisp
functions."
(tree-inspector--make-node (cdr object))))))
(cl-defmethod tree-inspector--node-children ((object vector))
- (cl-map 'list
- #'tree-inspector--make-node
- object))
+ (cl-map 'list #'tree-inspector--make-node object))
(cl-defgeneric tree-inspector--make-node (object)
(:documentation "Create treeview node for Emacs Lisp OBJECT."))
@@ -311,7 +309,7 @@ in a format understood by `kbd'. Commands a names of Lisp
functions."
;; (tree-inspector--make-node (cdr cons))))
;; child))
;; object))
- node))
+ node))
;; plists
((tree-inspector--plistp object)
(let ((node (treeview-new-node)))
@@ -387,44 +385,52 @@ in a format understood by `kbd'. Commands a names of
Lisp functions."
"tree-inspector for buffers."
(let ((node (treeview-new-node)))
(treeview-set-node-name node (prin1-to-string object))
- (tree-inspector--set-node-children
- node (list (tree-inspector--make-node (get-buffer-window object))
- (tree-inspector--make-node
- (format "cursor pos: %s" (with-current-buffer object
- (what-cursor-position))))))
+ (treeview-set-node-prop node 'object object)
node))
+(cl-defmethod tree-inspector--node-children ((object buffer))
+ (list (tree-inspector--make-node (get-buffer-window object))
+ (tree-inspector--make-node
+ (format "cursor pos: %s" (with-current-buffer object
+ (what-cursor-position))))))
+
(cl-defmethod tree-inspector--make-node ((object window))
"tree-inspector for windows."
(let ((node (treeview-new-node)))
(treeview-set-node-name node (prin1-to-string object))
- (tree-inspector--set-node-children
- node (list (tree-inspector--make-node (window-parent object))
- (tree-inspector--make-node (window-buffer object))
- (tree-inspector--make-node (window-frame object))
- (tree-inspector--make-node (window-parameters object))))
- node))
+ (treeview-set-node-prop node 'object object)))
+
+(cl-defmethod tree-inspector--node-children ((object window))
+ (list (tree-inspector--make-node (window-parent object))
+ (tree-inspector--make-node (window-buffer object))
+ (tree-inspector--make-node (window-frame object))
+ (tree-inspector--make-node (window-parameters object))))
(cl-defmethod tree-inspector--make-node ((object frame))
(let ((node (treeview-new-node)))
(treeview-set-node-name node (prin1-to-string object))
- (tree-inspector--set-node-children
- node (mapcar #'tree-inspector--make-node (frame-parameters object)))
+ (treeview-set-node-prop node 'object object)
node))
+(cl-defmethod tree-inspector--node-children ((object frame))
+ (mapcar #'tree-inspector--make-node (frame-parameters object)))
+
(cl-defmethod tree-inspector--make-node ((object overlay))
"tree-inspector node for overlays."
(let ((node (treeview-new-node)))
(treeview-set-node-name node (prin1-to-string object))
- (tree-inspector--set-node-children
- node (list (tree-inspector--make-node (overlay-buffer object))
- (tree-inspector--make-node (overlay-properties object))))
+ (treeview-set-node-prop node 'object object)
node))
+(cl-defmethod tree-inspector--node-children ((object overlay))
+ (list (tree-inspector--make-node (overlay-buffer object))
+ (tree-inspector--make-node (overlay-properties object))))
+
(defun tree-inspector-inspect (data)
"Inspect DATA with a tree-inspector."
- (let ((buffer (get-buffer-create (format "*tree-inspector: %s*"
- (tree-inspector--print-object
data)))))
+ (let ((buffer (get-buffer-create
+ (format "*tree-inspector: %s*"
+ (tree-inspector--print-object data)))))
(with-current-buffer buffer
;; (setq-local treeview-get-root-node-function
;; (lambda () (tree-inspector--make-node data)))
@@ -434,13 +440,12 @@ in a format understood by `kbd'. Commands a names of
Lisp functions."
(setq-local treeview-get-indent-function #'tree-inspector--get-indent)
(setq-local treeview-get-control-function
(lambda (node)
- (let ((object (treeview-get-node-prop node 'object)))
- (when (or (treeview-get-node-children node)
- (and object (cl-some (lambda (type) (cl-typep
object type))
- '(vector cons
hash-table))))
+ (when (or (treeview-get-node-children node)
+ (when-let ((object (treeview-get-node-prop node
'object)))
+ (tree-inspector--node-children object)))
(if (treeview-node-folded-p node)
tree-inspector-folded-node-control
- tree-inspector-expanded-node-control)))))
+ tree-inspector-expanded-node-control))))
(setq-local treeview-update-node-children-function
#'tree-inspector--update-node-children)
(setq-local treeview-after-node-expanded-function
- [elpa] externals/inspector d43bb09ae9 11/39: tree-inspector: housekeeping, (continued)
- [elpa] externals/inspector d43bb09ae9 11/39: tree-inspector: housekeeping, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 4066d7b441 13/39: Starting some tree-inspector tests, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 8b000e4e4e 15/39: tree-inspector: tests, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 130c43c6b6 19/39: tree-inspector: records, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 394fb22811 09/39: ..., ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 98d3d56723 10/39: tree-inspector: provide, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 236ef196a0 24/39: tree-inspector: fixes, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector fc9712651c 36/39: More complete package commentary, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 5828d49207 21/39: tree-inspector: inspect-last-sexp, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 1f1469ec9d 22/39: tree-inspector: buffers, windows, frames, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 49586fc18b 23/39: tree-inspector: buffers, windows, overlays, frames,
ELPA Syncer <=
- [elpa] externals/inspector 1ea746c8e0 27/39: tree-inspector: better window inspector, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 019019c3b5 30/39: tree-inspector: housekeeping, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 7f6530dc2d 14/39: inspector-tests: command for running tests, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector f5b136d169 16/39: tree-inspector: cons, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 060af64376 04/39: tree-inspector: switch-to-buffer, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector c1f50d8c69 12/39: Function for running inspector tests, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 683313d9bd 20/39: tree-inspector: records test, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 35fa3fc224 26/39: Housekeeping, ELPA Syncer, 2022/09/10
- [elpa] externals/inspector 4744b6ef92 28/39: tree-inspector: Use inspector to inspect objects at event and at point., ELPA Syncer, 2022/09/10
- [elpa] externals/inspector b95e058a72 31/39: tree-inspector: docstrings, ELPA Syncer, 2022/09/10