1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-17 21:51:00 -08:00
emacs/lisp/erc
F. Jason Park af547c4bbe Improve ERC's internal invisibility API
* etc/ERC-NEWS: Mention that line endings have moved from the end to
the beginning of hidden messages.
* lisp/erc/erc-fill.el (erc-fill--wrap-ensure-dependencies): Warn when
users have `erc-legacy-invisible-bounds-p' enabled, and force it to
its default value of nil in the current buffer.
(erc-fill-wrap-mode, erc-fill-wrap-enable): Move business involving
compat variable for enabling legacy hidden-message behavior to helper.
* lisp/erc/erc-match.el (erc-match--hide-fools-offset-bounds): Move
internal variable from to main library file and rename to
`erc-legacy-invisible-bounds-p'.  Also make obsolete and flip
semantics so a non-nil value enables the traditional behavior.
(erc-match--hide-message): Move to main library file and rename to
`erc--hide-message'.  Add a property-value parameter instead of
hard-coding to `erc-match'.  Also, condition behavior on renamed
compatibility flag `erc-legacy-invisible-bounds-p'.
(erc-hide-fools): Call `erc--hide-message' with own value for
`invisible' property specifically for fools.  That is, use
`match-fools' rather than `erc-match' or `erc-match-fools' to save
room when visually inspecting.  This retains the module name as a
prefix to hopefully minimize collisions with invisibility spec members
owned by non-ERC minor modes.  The `timestamp' spec member owned by
erc-stamp likewise lacks a namespace prefix, but its feature/group
affiliation is self-evident.
(erc-match--modify-invisibility-spec): Use toggle command
non-interactively for adding and removing invisibility spec member.
(erc-match-toggle-hidden-fools): Add explicit override argument and
defer to general helper for actually modifying spec.
(erc-match--toggle-hidden): New helper for toggling invisibility
spec.
* lisp/erc/erc.el (erc--merge-prop): If new value is a list, prepend
onto existing.  Add note about possible space optimization.
(erc-legacy-invisible-bounds-p): New obsolete compat variable to
enable traditional pre-5.6 invisibility interval on hidden messages.
Replaces `erc-match--hide-fools-offset-bounds-p' but has an inverted
meaning.  The new default value of nil means invisibility covers a
shifted interval consisting of the message body plus the line ending
immediately preceding it.
(erc--hide-message): New function, formerly `erc-match--hide-message'
from erc-match.el introduced in ERC 5.6.
* test/lisp/erc/erc-scenarios-match.el:
(erc-scenarios-match--invisible-stamp): Fix comment and use API
function in interactive convenience setup.
(erc-scenarios-match--find-bol): New test helper.
(erc-scenarios-match--find-eol): Fix bug affecting interactive use.
(erc-scenarios-match--stamp-left-fools-invisible,
erc-scenarios-match--stamp-right-fools-invisible,
erc-scenarios-match--stamp-right-invisible-fill-wrap,
erc-scenarios-match--stamp-both-invisible-fill-static): Update
`invisible' property from `erc-match' to `match-fools'.
(erc-scenarios-match--stamp-right-fools-invisible,
erc-scenarios-match--stamp-both-invisible-fill-static): Move test
body to function of same name for use in multiple cases.
(erc-scenarios-match--stamp-right-fools-invisible--nooffset,
erc-scenarios-match--stamp-both-invisible-fill-static--nooffset): New
test variants asserting proper hiding with old pre-5.6 invisibility
interval.
* test/lisp/erc/erc-tests.el (erc-tests--equal-including-properties):
Relocate macro higher in same file.
(erc--merge-prop): New test.  (Bug#64301)
2023-07-22 07:33:07 -07:00
..
ChangeLog.1
ChangeLog.2
erc-autoaway.el
erc-backend.el Make erc-fill-wrap work with left-sided stamps 2023-07-22 07:33:07 -07:00
erc-button.el
erc-capab.el
erc-common.el
erc-compat.el Make erc-fill-wrap work with left-sided stamps 2023-07-22 07:33:07 -07:00
erc-dcc.el
erc-desktop-notifications.el
erc-ezbounce.el
erc-fill.el Improve ERC's internal invisibility API 2023-07-22 07:33:07 -07:00
erc-goodies.el
erc-ibuffer.el
erc-identd.el
erc-imenu.el
erc-join.el
erc-lang.el
erc-list.el
erc-log.el
erc-match.el Improve ERC's internal invisibility API 2023-07-22 07:33:07 -07:00
erc-menu.el
erc-netsplit.el
erc-networks.el
erc-nicks.el Warn when toggling erc-nicks-mode in target buffers 2023-07-19 06:11:21 -07:00
erc-notify.el
erc-page.el
erc-pcomplete.el
erc-replace.el
erc-ring.el
erc-sasl.el
erc-services.el
erc-sound.el
erc-speedbar.el
erc-spelling.el
erc-stamp.el Make erc-fill-wrap work with left-sided stamps 2023-07-22 07:33:07 -07:00
erc-status-sidebar.el
erc-track.el
erc-truncate.el
erc-xdcc.el
erc.el Improve ERC's internal invisibility API 2023-07-22 07:33:07 -07:00