1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-08 20:50:52 -08:00
emacs/test/lisp
F. Jason Park 49bfea4386 Use templates for formatting chat messages in ERC
* doc/misc/erc.texi: Replace option `erc-format-nick-function' with
`erc-show-speaker-membership-status'.
* etc/ERC-NEWS: Mention shift to template-based speaker formatting.
Also mention in-buffer STATUSMSG support and various name changes and
new formatting-related options.
* lisp/erc/erc-backend.el (erc-format-privmessage): Remove forward
declaration.
(erc--determine-speaker-message-format-args): Add forward declaration.
(erc--statusmsg-target): New utility function for detecting whether
the current target is status-prefixed.
(erc-current-message-catalog): Move here from lisp/erc/erc.el.
(erc--message-speaker-catalog): New variable.
(erc--speaker-status-prefix-wanted-p): New variable specifically for
the function `erc-format-@nick' to signal it wants status-prefixes
prepended to the displayed nick.
(erc-server-PRIVMSG): Initialize `let'-bound value of
`erc--msg-prop-overrides' to a dummy `erc--tmp' property with a null
value that `erc-display-message' will "strip" before calling its
hooks.  Move away from the rather blunt symbol `msg' as a useful value
for `erc--msg'.  Instead, allow `erc-display-message' to assign the
most appropriate value based on context.  Also, bind the variable
`erc-current-message-catalog' to whatever the buffer's
`erc--message-speaker-catalog' happens to be.  Future internal modules
can set this to alternative catalogs as needed.  Additionally, detect
STATUSMSG prefixes on targets and inform the formatting logic of the
verdict.  Lastly, and most importantly, use the function
`erc--determine-speaker-message-format-args' instead of
`erc-format-privmessage' for message formatting.  Pass along the
returned "catalog key" and spec parameters to `erc-display-message'.
However, for NOTICEs, continue to render the string, as before, for
the two "echo notice" hooks.
* lisp/erc/erc-common.el (erc--ctcp-response): New "subsclass" of
`erc-response' for smuggling extra information to CTCP query handlers
in a mostly backwards-compatible way.  The same approach could be
taken with the "echo notice" hooks mentioned above.
* lisp/erc/erc-dcc.el (erc-dcc-chat-filter): Add `erc--spkr' and
`erc--speaker' properties even though these chat buffers are not
`erc-mode' buffers.
* lisp/erc/erc-fill.el (erc-fill--wrap-last-msg,
erc-fill--wrap-max-lull): Add doc strings.
(erc-fill--wrap-continued-message-p): Rework to look for `erc--spkr'-
`erc--msg' combinations as indicators of speaker continuity.
(erc-fill--wrap-rejigger-region): Remove reference to the no longer
relevant `erc-stamp-type'.  Instead, use the `erc--msg' property
combined with the `erc-timestamp' field to detect date stamps because
all are currently left-sided.
* lisp/erc/erc-stamp.el (erc-stamp--propertize-left-date-stamp): Don't
add superfluous `erc-stamp-type' property.
* lisp/erc/erc.el (erc--msg-props): Revise purpose and meaning of
`erc--msg' by removing possible value `msg', which was previously
meant to indicate that a message had a "speaker".  Instead, rely on
the separate `erc--spkr' property to convey this information, with
`erc--msg' now expressing a "type" or "role".
(erc--use-language-catalog-for-ctcp-action-p): New variable, a
compatibility switch to help transition from the `ACTION' entry of the
language catalog to the `ctcp-action' family of entries in the new
`-speaker' catalog.
(erc--ensure-spkr-prop): Update to include any passed-in environmental
overrides.
(erc--send-action-display): Restore pre-5.6 behavior when
compatibility flag enabled.  Otherwise, use new `-speaker' catalog for
formatting inserted message.
(erc--send-message-external): Overhaul to behave more faithfully in
mimicking a line submitted at the prompt of the current target buffer.
(erc--own-property-names): Remove `erc-stamp-type'.
(erc-ensure-target-buffer-on-privmsg): Add new choice variant for old
default behavior and change meaning of default to mean "except for
STATUSMSGs".  This option is newly revived for ERC 5.6.
(erc--message-speaker-statusmsg, erc--message-speaker-statusmsg-input,
erc--message-speaker-input, erc--message-speaker-input-chan-privmsg,
erc--message-speaker-input-chan-notice,
erc--message-speaker-input-query-privmsg,
erc--message-speaker-input-query-notice,
erc--message-speaker-chan-privmsg, erc--message-speaker-query-privmsg,
erc--message-speaker-chan-notice, erc--message-speaker-query-notice,
erc--message-speaker-ctcp-action,
erc--message-speaker-ctcp-action-input,
erc--message-speaker-ctcp-action-statusmsg,
erc--message-speaker-ctcp-action-statusmsg-input): New variables for
new `speaker' format-template catalog.
(erc--speakerize-nick): New helper function.
(erc--determine-speaker-message-format-args): New function to find the
appropriate format key from various contextual parameters.  Could
become the default of a function-valued variable for internal use.
(erc-show-speaker-membership-status): New option.
(erc-format-nick-function, erc-speaker-from-channel-member-function):
Declare former as an obsolete alias for the latter, and redefine
purpose slightly.
(erc-format-nick-function, erc-determine-speaker-from-user): Rename
former to latter and obsolete the old name.
(erc-format-nick, erc-determine-speaker-from-user): Rename former to
latter and obsolete old name.
(erc-format-@nick): Deprecate and adapt for use with new
template-based formatting paradigm.
(erc-format-my-nick): Move `erc-speaker' text prop toward head of
list, meaning it will end up beneath `font-lock-face' in the final
output.
(erc--format-speaker-input-message): New function to replace
`erc-format-my-nick' in-tree.
(erc-process-ctcp-query): Don't bind `erc--msg' to `msg'.  Instead,
rely on `erc-display-message' to set it to the current template key.
(erc-ctcp-query-ACTION): Prefer using formatting template, but attempt
to simulate pre-5.6 behavior when compatibility flag enabled.
(erc-display-msg): Use `erc--format-speaker-input-message' instead of
`erc-format-my-nick'.  Ignore `erc--msg-prop-overrides' with null
values.
(erc-current-message-catalog): Move to erc-backend.el.
* test/lisp/erc/erc-scenarios-base-statusmsg.el: New file.
* test/lisp/erc/erc-scenarios-stamp.el
(erc-scenarios-stamp--left/display-margin-mode): Expect format catalog
key instead of unhelpful `msg' as value of `erc--msg' prop.
* test/lisp/erc/erc-tests.el (erc-message): Render format template in
mock function and expect string in assertions.
(erc-tests--format-privmessage): New function, a helper for the
following test.
(erc-format-privmessage, erc--determine-speaker-message-format-args):
Rename former to latter and suppress deprecation warning.
(erc--determine-speaker-message-format-args/queries,
erc--determine-speaker-message-format-args/queries-as-channel): New
tests.
(erc-tests--format-my-nick): New helper function for the following
test.
(erc--format-speaker-input-message): New test.
* test/lisp/erc/resources/base/display-message/statusmsg.eld: New
file.  (Bug#67677)
; * test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld: Update.
; * test/lisp/erc/resources/fill/snapshots/merge-wrap-indicator-post-01.eld:
; Update.
; * test/lisp/erc/resources/fill/snapshots/merge-wrap-indicator-pre-01.eld:
; Update.
2023-12-17 20:17:55 -08:00
..
align-resources Support lua-ts-mode in align.el 2023-10-21 12:25:25 +02:00
auth-source-resources Move netrc tests to auth-source-tests.el 2022-08-04 17:33:34 +02:00
bookmark-resources Add ability to mark/unmark/delete all bookmarks 2020-08-09 15:13:05 -05:00
calc Actually check the result of equal comparisons in tests 2023-08-14 17:03:44 +02:00
calendar Revert "Mark two tests as expensive" 2023-09-16 19:09:04 +02:00
cedet Split up tests in bovine/gcc-tests.el 2023-08-28 22:07:23 +02:00
custom-resources Avoid saving session customizations in the custom-file 2021-05-10 13:33:32 +02:00
dired-resources/insert-directory Change how Dired displays available space 2021-12-01 23:27:19 +01:00
emacs-lisp ; Fix typos 2023-12-10 13:22:04 +01:00
emulation ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
epg-resources Replace aging OpenPGP artifacts in the epg tests. 2022-10-06 14:53:39 +02:00
erc Use templates for formatting chat messages in ERC 2023-12-17 20:17:55 -08:00
eshell ; Fix typos 2023-12-10 13:22:04 +01:00
faces-resources ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
files-resources * test/lisp/files-resources/compile-utf8.el: Use lexical-binding 2022-05-26 12:16:04 -04:00
gnus Merge from origin/emacs-29 2023-10-28 05:06:21 -04:00
hfy-cmap-resources * test/lisp/hfy-cmap-resources/rgb.txt: Add comment line. 2020-11-12 03:20:39 +01:00
image Revert "Fix image-dired-utils-tests after 83b6a8a514 (bug#61394)" 2023-08-03 11:40:44 +03:00
international Merge from origin/emacs-29 2023-12-09 07:25:21 -05:00
loadhist-resources ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
mail ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
mh-e MH-E testing: find locally-installed GNU Mailutils libraries 2023-11-03 15:24:21 -07:00
minibuffer-resources Move more test data to follow our conventions 2020-10-23 21:07:26 +02:00
net New macro connection-local-p 2023-12-12 17:39:51 +01:00
nxml ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
obsolete ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
org ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
pcmpl-linux-resources Use lexical-binding in pcmpl-linux.el and add tests 2020-09-02 12:53:02 +02:00
play ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
progmodes Merge from origin/emacs-29 2023-12-16 09:17:51 -05:00
saveplace-resources Use lexical-binding in saveplace.el and add tests 2020-08-08 01:40:38 +02:00
so-long-tests ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
term ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
textmodes Fix font locking of booleans in conf-toml-mode 2023-08-01 14:39:30 +02:00
time-resources Add missed file needed by time-tests.el 2020-10-22 18:51:00 +02:00
url Use more recent public_suffix_list.dat where possible 2023-02-17 22:50:13 +01:00
use-package Fix use-package :vc keyword when byte-compiled 2023-06-03 10:27:46 +03:00
vc Use new ERT skip-when macro in tests 2023-09-04 18:25:18 +02:00
xdg-resources Move more test data to follow our conventions 2020-10-23 21:07:26 +02:00
abbrev-tests.el ; * test/lisp/abbrev-tests.el (abbrev--possibly-save-test): Fix test. 2023-03-18 12:35:10 +02:00
align-tests.el ; * test/lisp/align-tests.el: Pacify warning. 2023-10-23 12:59:13 +02:00
allout-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
allout-widgets-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ansi-color-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ansi-osc-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
apropos-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
arc-mode-tests.el Clean up files created by arc-mode-tests 2023-05-10 14:48:34 +02:00
auth-source-pass-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
auth-source-tests.el Fix auth-source-macos-keychain (bug#64977) 2023-08-13 18:31:47 +02:00
autoinsert-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
autorevert-tests.el Use new ERT skip-when macro in tests 2023-09-04 18:25:18 +02:00
battery-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
bookmark-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
buff-menu-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
button-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
calculator-tests.el Add test for calculator-exp 2023-08-16 21:27:50 +02:00
char-fold-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
color-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
comint-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
completion-preview-tests.el ; Improve and add tests for Completion Preview mode 2023-11-25 12:06:03 +02:00
completion-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cus-edit-tests.el ; * test/lisp/cus-edit-tests.el: remove unused var (bug#63290) 2023-08-21 17:05:53 +02:00
custom-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
dabbrev-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
delim-col-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
descr-text-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
desktop-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
dired-aux-tests.el ; * test/lisp/dired-aux-tests.el: remove mistaken unwind-protect 2023-03-29 22:18:28 +02:00
dired-tests.el ; * test/lisp/dired-tests.el (dired-test-bug27243-03): fix unwind 2023-08-14 17:03:44 +02:00
dired-x-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
dnd-tests.el Render default DND file name handlers more precise 2023-10-28 06:42:48 +00:00
dom-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
edmacro-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
electric-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
elide-head-tests.el Merge from origin/emacs-29 2023-01-01 05:47:47 -05:00
env-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
epg-config-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
epg-tests.el Skip hanging EasyPG tests on GnuPG 2.4 2023-08-29 00:48:54 +02:00
faces-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ffap-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
filenotify-tests.el New filenotify tests 2023-10-12 11:02:53 +02:00
files-tests.el Recognize shebang lines that pass '-S/--split-string' to 'env' 2023-11-19 11:05:26 +02:00
files-x-tests.el New macro connection-local-p 2023-12-12 17:39:51 +01:00
find-cmd-tests.el Avoid using rx any for not-newline 2023-05-30 17:44:53 +02:00
font-lock-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
format-spec-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
help-fns-tests.el Make describe-keymap tests more robust 2023-08-08 03:54:02 +02:00
help-mode-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
help-tests.el Rename describe-map-tree to help--describe-map-tree 2023-09-17 22:56:00 +02:00
hfy-cmap-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
hi-lock-tests.el Fix hi-lock-tests when 'use-dialog-box' is non-nil 2023-02-18 10:45:12 +02:00
hl-line-tests.el Remove useless unwind-protect forms, or make them useful as intended 2023-04-07 19:08:33 +02:00
htmlfontify-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ibuffer-tests.el Use new ERT skip-when macro in tests 2023-09-04 18:25:18 +02:00
ido-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
image-file-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
image-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
imenu-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
info-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
info-xref-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
isearch-tests.el Improve invisibility handling in isearch-lazy-highlight (bug#40808) 2023-11-20 19:57:57 +02:00
jit-lock-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
json-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
jsonrpc-tests.el Jsonrpc: rework fix for bug#60088 2023-12-14 00:55:52 +00:00
kmacro-tests.el Fix insertion of keyboard macro containing named keys 2023-02-24 11:43:08 +01:00
loadhist-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
lpr-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ls-lisp-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
man-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
md4-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
minibuffer-tests.el Fix test failures in test/lisp/minibuffer-tests.el 2023-11-11 16:13:52 +00:00
misc-tests.el Add duplicate-region-final-position (bug#64185) 2023-07-01 12:41:09 +02:00
mouse-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
mwheel-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
newcomment-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
obarray-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
paren-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
password-cache-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
pcmpl-linux-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
pcomplete-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
proced-tests.el ; Fix typos 2023-12-10 13:22:04 +01:00
ps-print-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
repeat-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
replace-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
rot13-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
saveplace-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
scroll-lock-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
server-tests.el Skip hanging tests on Cygwin (bug#65325) 2023-08-19 14:21:34 -04:00
ses-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
shadowfile-tests.el Use new ERT skip-when macro in tests 2023-09-04 18:25:18 +02:00
shell-tests.el ; * test/lisp/shell-tests.el: Add tests for shell-dirtrack-mode (bug#64311) 2023-07-08 19:30:06 +03:00
simple-tests.el Revert "Mark two tests as expensive" 2023-09-16 19:09:04 +02:00
sort-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
soundex-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
startup-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
subr-tests.el (merge-ordered-lists): Dot a few more is 2023-11-16 09:57:33 -05:00
tab-bar-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
tabify-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
tar-mode-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
tempo-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
term-tests.el Use new ERT skip-when macro in tests 2023-09-04 18:25:18 +02:00
thingatpt-tests.el ; Fix typos 2023-12-10 13:22:04 +01:00
thread-tests.el Use new ERT skip-when macro in tests 2023-09-04 18:25:18 +02:00
time-stamp-tests.el Further improve test coverage of time-stamp-pattern parsing 2023-11-04 21:46:27 -07:00
time-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
timezone-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
uniquify-tests.el ; * test/lisp/uniquify-tests.el (uniquify-home): Delete (bug#62621). 2023-08-03 17:04:41 +03:00
version-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
wdired-tests.el Fix wdired-tests on MS-Windows 2023-03-02 14:21:33 +02:00
whitespace-tests.el Merge from origin/emacs-29 2023-01-01 05:47:47 -05:00
wid-edit-tests.el Avoid errors when a restricted-sexp widget is empty 2023-09-16 12:56:34 +03:00
x-dnd-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
xdg-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
xml-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
xt-mouse-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
yank-media-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00