GNU bug report logs -
#64536
30.0.50; Make cl-print put buttons on ellipses
Previous Next
Reported by: Stefan Monnier <monnier <at> iro.umontreal.ca>
Date: Sun, 9 Jul 2023 04:44:01 UTC
Severity: normal
Found in version 30.0.50
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
Message #16 received at 64536 <at> debbugs.gnu.org (full text, mbox):
>> -;; Define button type used for ...'s.
>> -;; Set skip property so you don't have to TAB through 100 of them to
>> -;; get to the next function name.
>> -(define-button-type 'backtrace-ellipsis
>> - 'skip t 'action #'backtrace-expand-ellipsis
>> - 'help-echo "mouse-2, RET: expand this ellipsis")
>
> Isn't this a breaking change?
> I just got inspector.el broken because it uses 'backtrace-ellipsis
> button type.
Apparently it's a breaking change, indeed.
Hmm... we could re-add it, but with the new `cl-print.el` your code
should simply not use `backtrace-ellipsis` at all because `cl-print.el`
did it for you already.
IOW, I think a patch like the one below my sig is the better option.
> At least, I'd expect to see the removal documented in NEWS.
How 'bout:
The code that allowed "..." to be expanded in the "*Backtrace*" buffer
should now work anywhere the data is generated by 'cl-print'.
+*** The 'backtrace-ellipsis' button is replaced by 'cl-print-ellipsis'.
+
*** hash-tables' contents can be expanded via the ellipsis.
+*** Modes can control the expansion via 'cl-print-expand-ellipsis-function'.
+
** Modeline elements can now be right-aligned.
Anything following the symbol 'mode-line-format-right-align' in
'mode-line-format' will be right-aligned. Exactly where it is
-- Stefan
diff --git a/inspector.el b/inspector.el
index fa9b1cc778..e00209f2be 100644
--- a/inspector.el
+++ b/inspector.el
@@ -1,6 +1,6 @@
;;; inspector.el --- Tool for inspection of Emacs Lisp objects -*- lexical-binding: t -*-
-;; Copyright (C) 2021-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2021-2023 Free Software Foundation, Inc.
;; Author: Mariano Montone <marianomontone <at> gmail.com>
;; URL: https://github.com/mmontone/emacs-inspector
@@ -243,13 +243,14 @@ LIMIT controls the truncation."
(put-text-property (point-min) (point) 'inspector-form (gensym))
;; Make buttons from all the "..."s. Since there might be many of
;; them, use text property buttons.
- (goto-char (point-min))
- (while (< (point) (point-max))
- (let ((end (next-single-property-change (point) 'cl-print-ellipsis
- nil (point-max))))
- (when (get-text-property (point) 'cl-print-ellipsis)
- (make-text-button (point) end :type 'backtrace-ellipsis))
- (goto-char end)))
+ (unless (boundp 'cl-print-expand-ellipsis-function) ;Emacs-30
+ (goto-char (point-min))
+ (while (< (point) (point-max))
+ (let ((end (next-single-property-change (point) 'cl-print-ellipsis
+ nil (point-max))))
+ (when (get-text-property (point) 'cl-print-ellipsis)
+ (make-text-button (point) end :type 'backtrace-ellipsis))
+ (goto-char end))))
(buffer-string)))
(cl-defgeneric inspector--face-for-object (object)
This bug report was last modified 1 year and 334 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.