]> git.eshelyaron.com Git - emacs.git/commitdiff
Print records inside data-debug
authorPo Lu <luangruo@yahoo.com>
Fri, 5 Apr 2024 06:07:44 +0000 (14:07 +0800)
committerEshel Yaron <me@eshelyaron.com>
Fri, 5 Apr 2024 12:12:30 +0000 (14:12 +0200)
* lisp/cedet/data-debug.el
(data-debug-insert-stuff-record-button): New function.
(data-debug-thing-alist): Register new function.

(cherry picked from commit 7a13d012c8e17eb25fc8826cdd9ac3e96f912167)

lisp/cedet/data-debug.el

index 83ff451fa9914a9a5b99d9ef73cfb107c50d720d..fda3edd602c2ba7f8be8491759e1ad47c231bac2 100644 (file)
@@ -598,6 +598,29 @@ PREBUTTONTEXT is some text between prefix and the stuff vector button."
     )
   )
 
+(defun data-debug-insert-stuff-record-button (stuffvector
+                                             prefix
+                                             prebuttontext)
+  "Insert a button representing STUFFVECTOR.
+PREFIX is the text that precedes the button.
+PREBUTTONTEXT is some text between prefix and the stuff vector button."
+  (let* ((start (point))
+        (end nil)
+        (str (format "#<record o' stuff: %d entries>" (length stuffvector)))
+        (tip str))
+    (insert prefix prebuttontext str)
+    (setq end (point))
+    (put-text-property (- end (length str)) end 'face 'font-lock-variable-name-face)
+    (put-text-property start end 'ddebug stuffvector)
+    (put-text-property start end 'ddebug-indent (length prefix))
+    (put-text-property start end 'ddebug-prefix prefix)
+    (put-text-property start end 'help-echo tip)
+    (put-text-property start end 'ddebug-function
+                      'data-debug-insert-stuff-vector-from-point)
+    (insert "\n")
+    )
+  )
+
 ;;; Symbol
 ;;
 
@@ -781,6 +804,9 @@ FACE is the face to use."
 
     ;; Vector of stuff
     (vectorp . data-debug-insert-stuff-vector-button)
+
+    ;; Record of stuff
+    (recordp . data-debug-insert-stuff-record-button)
     )
   "Alist of methods used to insert things into an Ddebug buffer.")