branch: externals/inspector commit 1f1469ec9d66dd6353a9129519815fd53b01215e Author: Mariano Montone <marianomont...@gmail.com> Commit: Mariano Montone <marianomont...@gmail.com>
tree-inspector: buffers, windows, frames --- tree-inspector-tests.el | 9 +++++---- tree-inspector.el | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/tree-inspector-tests.el b/tree-inspector-tests.el index f7913d9a03..e0a034fbbd 100644 --- a/tree-inspector-tests.el +++ b/tree-inspector-tests.el @@ -195,11 +195,12 @@ (should (cl-search "23" buffer-string)) (should (cl-search "rats" buffer-string)))) -(ert-deftest inspector-tests--inspect-finalizer-test () - (inspector-inspect (make-finalizer #'print))) +(ert-deftest tree-inspector-tests--inspect-finalizer-test () + (tree-inspector-tests--with-tree-inspector-contents + (buffer-string (make-finalizer #'print)))) -(ert-deftest inspector-tests--overlays-test () - (inspector-inspect (make-button 0 10)) +(ert-deftest tree-inspector-tests--overlays-test () + (tree-inspector-inspect (make-button 0 10)) (let ((buffer-string (buffer-string))) (should (cl-search "overlay" buffer-string))) (inspector-quit) diff --git a/tree-inspector.el b/tree-inspector.el index 3304344734..c16303bbda 100644 --- a/tree-inspector.el +++ b/tree-inspector.el @@ -383,6 +383,44 @@ in a format understood by `kbd'. Commands a names of Lisp functions." (tree-inspector--set-node-children node children) node))) +(cl-defmethod tree-inspector--make-node ((object buffer)) + "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)))))) + node)) + +(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)) + +(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))) + node)) + +(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)))) + node)) + (defun tree-inspector-inspect (data) "Inspect DATA with a tree-inspector." (let ((buffer (get-buffer-create (format "*tree-inspector: %s*" @@ -421,6 +459,7 @@ in a format understood by `kbd'. Commands a names of Lisp functions." (switch-to-buffer buffer) buffer))) +;;;###autoload (defun tree-inspector-inspect-last-sexp () "Evaluate sexp before point and inspect the result." (interactive)