emacs/etc
Stefan Monnier 3ffb99f28f cl-print: Put buttons on ellipses
Currently, in *Backtrace* we have a nice behavior for cl-printed objects
where they're truncated by default to a manageable size but we can click
on the "..." to expand them when needed.

The patch below moves that functionality to `cl-print.el` such
that it can be enjoyed "everywhere" (bug#64536).  It also has the
benefit of simplifying the code since `backtrace.el` had to look for
ellipses in order to add buttons to them, whereas now we can put
the ellipses right when we write them.

* lisp/emacs-lisp/cl-print.el (cl-print-object-contents): Improve docstring.
(cl-print-expand-ellipsis-function): New var.
(cl-print--default-expand-ellipsis): New function.
(cl-print-expand-ellipsis): New command.
(cl-print-insert-ellipsis): Allow nil instead of 0 to mean "this elides
the whole object".
(cl-print-ellipsis): Move button type from `backtrace.el`.
(cl-print-propertize-ellipsis): Put a button.
(cl-print--expand-ellipsis): Rename from `cl-print-expand-ellipsis`.
(cl-print-to-string-with-limit): Allow new value t for `limit`.

* lisp/emacs-lisp/backtrace.el (backtrace--font-lock-keywords): Simplify.
(backtrace--match-ellipsis-in-string): Delete function.
(backtrace--change-button-skip): Adjust to new button type name.
(backtrace--expand-ellipsis): New function, extracted from
`backtrace-expand-ellipsis`.
(backtrace-expand-ellipsis): Delete function.
(backtrace-ellipsis): Move button type to `cl-print.el`.
(backtrace--print-to-string): Don't look for cl-print ellipses any more.
(backtrace-mode): Use `backtrace--expand-ellipsis`.

* lisp/ielm.el (ielm--expand-ellipsis): New function.
(inferior-emacs-lisp-mode): Use it to fill the data when expanded.

* test/lisp/emacs-lisp/cl-print-tests.el
(cl-print-tests-check-ellipsis-expansion)
(cl-print-tests-check-ellipsis-expansion-rx): Adjust to new internal
function name.
2023-07-13 19:00:51 -04:00
..
charsets ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
e Implement alternative sub-buffer support in term.el 2022-01-24 20:02:33 +01:00
forms ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
gnus
images Improve portability of newly added icons 2023-04-03 16:16:06 +08:00
nxml
org ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
refcards Merge from origin/emacs-29 2023-05-18 07:49:49 -04:00
schema ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
srecode ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
themes Update modus-themes to their version 4.2.0 2023-05-30 09:37:24 +03:00
tutorials Update zh-CN tutorial translation 2023-04-28 09:09:10 +03:00
AUTHORS ; Update ChangeLog.4 and etc/AUTHORS. 2023-06-18 07:15:29 -04:00
CALC-NEWS ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ChangeLog.1 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
compilation.txt Tighten and simplify typescript compilation-mode regexps (bug#61104) 2023-02-06 17:47:00 +01:00
COPYING Merge from Gnulib 2017-10-01 18:31:10 -07:00
DEBUG Merge from origin/emacs-29 2023-01-01 05:47:47 -05:00
DEVEL.HUMOR ; * etc/DEVEL.HUMOR: Add a recent joke. 2022-02-11 10:15:20 +02:00
DISTRIB ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
edt-user.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
EGLOT-NEWS Eglot: try reuse file watchers when server over-watches 2023-06-08 15:08:46 +01:00
emacs-buffer.gdb ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
emacs-mail.desktop Hide emacs-mail.desktop, emacsclient-mail.desktop from menus 2021-07-02 13:09:18 +02:00
emacs.desktop Drop redundant keywords in .desktop files. 2021-08-11 14:05:25 +02:00
emacs.icon
emacs.metainfo.xml ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
emacs.service * etc/emacs.service: 2020-12-14 17:59:58 +01:00
emacs_lldb.py ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
emacsclient-mail.desktop Avoid using bash in the emacsclient desktop file 2023-03-08 19:37:27 +01:00
emacsclient.desktop Fix quoted argument in emacsclient-mail.desktop Exec key 2022-12-24 09:19:40 +02:00
enriched.txt ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ERC-NEWS Revert "Account for leading timestamps in erc-match" 2023-07-03 07:30:32 -07:00
ETAGS.EBNF ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ETAGS.README ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
future-bug
gnus-tut.txt ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
grep.txt ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
HELLO Add Mongolian language environments 2023-04-25 11:50:59 +03:00
HISTORY Update HISTORY for Emacs 28.3 2023-02-17 11:22:19 +01:00
JOKES
MACHINES ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
MH-E-NEWS ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS cl-print: Put buttons on ellipses 2023-07-13 19:00:51 -04:00
NEWS.1-17 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.18 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.19 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.20 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.21 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.22 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.23 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.24 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.25 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.26 cl-print: Put buttons on ellipses 2023-07-13 19:00:51 -04:00
NEWS.27 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.28 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NEWS.29 Merge from origin/emacs-29 2023-07-01 06:29:52 -04:00
NEXTSTEP ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
NXML-NEWS ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ORG-NEWS Update to Org 9.6.1-48-g92471e 2023-03-18 21:41:22 -04:00
org.gnu.emacs.defaults.gschema.xml ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
package-keyring.gpg * etc/package-keyring.gpg: Update with new key 2022-12-28 12:19:02 -05:00
PROBLEMS Merge from origin/emacs-29 2023-07-01 06:30:00 -04:00
ps-prin0.ps ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ps-prin1.ps ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
publicsuffix.txt Update publicsuffix.txt from upstream 2023-04-01 06:00:47 +02:00
README ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
rgb.txt
ses-example.ses ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
spook.lines Add more spook.lines 2019-07-13 05:09:45 +02:00
TERMS ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
TODO ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
w32-feature.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
yow.lines

This directory contains the architecture-independent files used by or
with Emacs.  This includes some text files of documentation for GNU
Emacs or of interest to Emacs users, and the file of dumped docstrings
for Emacs functions and variables.

COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES

File: emacs.icon
  Author: Sun Microsystems, Inc
  Copyright (C) 1999, 2001-2023 Free Software Foundation, Inc.
  License: GNU General Public License version 3 or later (see COPYING)