emacs inspector

This commit is contained in:
David Botton 2024-05-29 17:07:27 -04:00
parent 0e05ed7a38
commit b7fc4a78d8

View file

@ -14,10 +14,18 @@
(let ((*default-title-class* *builder-title-class*) (let ((*default-title-class* *builder-title-class*)
(*default-border-class* *builder-border-class*) (*default-border-class* *builder-border-class*)
(*standard-input* (make-instance 'console-in-stream :clog-obj clog-obj))) (*standard-input* (make-instance 'console-in-stream :clog-obj clog-obj)))
(inspect symbol)))))) (inspect symbol))))
(:name "Emacs Inspect"
:func ,(lambda (symbol title value clog-obj)
(declare (ignore title value clog-obj))
(let ((SWANK::*BUFFER-PACKAGE* (find-package (string-upcase "clog-user")))
(SWANK::*BUFFER-READTABLE* *READTABLE*))
(swank:inspect-in-emacs symbol))))))
(defun on-probe-panel (obj) (defun on-probe-panel (obj)
(let ((app (connection-data-item obj "builder-app-data"))) (let ((app (connection-data-item obj "builder-app-data")))
(if (probe-win app)
(window-focus (probe-win app))
(let* ((*default-title-class* *builder-title-class*) (let* ((*default-title-class* *builder-title-class*)
(*default-border-class* *builder-border-class*) (*default-border-class* *builder-border-class*)
(win (create-gui-window obj :title "CLOG Probe Panel" (win (create-gui-window obj :title "CLOG Probe Panel"
@ -37,7 +45,7 @@
(set-on-click (create-span (window-icon-area win) :content "← " :auto-place :top) (set-on-click (create-span (window-icon-area win) :content "← " :auto-place :top)
(lambda (obj) (lambda (obj)
(declare (ignore obj)) (declare (ignore obj))
(set-geometry win :top (menu-bar-height win) :left 0 :height "" :bottom 5 :right "")))))) (set-geometry win :top (menu-bar-height win) :left 0 :height "" :bottom 5 :right "")))))))
;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;
;; clog-builder-probe ;; ;; clog-builder-probe ;;
@ -57,19 +65,14 @@ used for title."
,title)) ,title))
(freq ,auto-probe) (freq ,auto-probe)
probe probe
row
entry) entry)
(unless (probe-win app) (on-probe-panel body)
(on-probe-panel body))
(setf probe (create-div (window-content (probe-win app)) (setf probe (create-div (window-content (probe-win app))
:style "border-style:solid;overflow:auto;" :style "border-style:solid;overflow:auto;"
:class "w3-small")) :class "w3-small"))
(setf row (create-table-row (create-table probe))) (setf entry (create-div probe :class "w3-small"))
(create-table-column row :content (format nil "<b>~A</b> = " title))
(setf entry (create-table-column row
:class "w3-small"))
(flet ((refresh () (flet ((refresh ()
(let ((value (format nil "~A" ,symbol))) (let ((value (format nil "~A = ~A" title ,symbol)))
(setf (text entry) (format nil "~A" (setf (text entry) (format nil "~A"
value))))) value)))))
(refresh) (refresh)