1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-24 14:30:43 -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 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ChangeLog.2 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-autoaway.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-backend.el Make erc-fill-wrap work with left-sided stamps 2023-07-22 07:33:07 -07:00
erc-button.el Optionally combine faces in erc-display-message 2023-07-13 18:45:31 -07:00
erc-capab.el Don't associate ERC modules with undefined groups 2023-04-08 14:23:51 -07:00
erc-common.el Allow ERC's module toggles access to the prefix arg 2023-07-13 18:45:31 -07:00
erc-compat.el Make erc-fill-wrap work with left-sided stamps 2023-07-22 07:33:07 -07:00
erc-dcc.el Fix command-line parsing regression in erc-cmd-DCC 2023-07-13 18:45:31 -07:00
erc-desktop-notifications.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-ezbounce.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-fill.el Improve ERC's internal invisibility API 2023-07-22 07:33:07 -07:00
erc-goodies.el Decouple keep-place-indicator from global ERC module 2023-07-13 18:45:31 -07:00
erc-ibuffer.el Don't require erc-goodies in erc.el 2023-04-08 14:23:51 -07:00
erc-identd.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-imenu.el Define missing groups for ERC modules 2023-06-11 20:53:48 -07:00
erc-join.el Allow custom display-buffer actions in ERC 2023-07-13 18:45:31 -07:00
erc-lang.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-list.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-log.el Preserve prompt in erc-cmd-CLEAR 2023-05-29 21:46:23 -07:00
erc-match.el Improve ERC's internal invisibility API 2023-07-22 07:33:07 -07:00
erc-menu.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-netsplit.el ; Silence byte compiler in erc-netsplit-JOIN 2023-05-21 18:59:33 -07:00
erc-networks.el Add preset styles to erc-status-sidebar 2023-07-13 18:45:31 -07:00
erc-nicks.el Warn when toggling erc-nicks-mode in target buffers 2023-07-19 06:11:21 -07:00
erc-notify.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-page.el Don't require erc-goodies in erc.el 2023-04-08 14:23:51 -07:00
erc-pcomplete.el Leverage loaddefs for migrating ERC modules 2023-04-08 14:23:50 -07:00
erc-replace.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-ring.el Preprocess prompt input linewise in ERC 2023-05-05 17:18:01 -07:00
erc-sasl.el Add helper for restoring local session vars in ERC 2023-05-13 07:05:22 -07:00
erc-services.el Redo erc-nickname-in-use-functions as a local module 2023-07-01 07:21:30 -07:00
erc-sound.el Define missing groups for ERC modules 2023-06-11 20:53:48 -07:00
erc-speedbar.el Add erc-status-sidebar integration to erc-speedbar 2023-07-13 18:45:31 -07:00
erc-spelling.el Define missing groups for ERC modules 2023-06-11 20:53:48 -07:00
erc-stamp.el Make erc-fill-wrap work with left-sided stamps 2023-07-22 07:33:07 -07:00
erc-status-sidebar.el Add preset styles to erc-status-sidebar 2023-07-13 18:45:31 -07:00
erc-track.el Fix buffer-mismatch bug in erc-scroll-to-bottom 2023-07-13 18:45:31 -07:00
erc-truncate.el Preserve prompt in erc-cmd-CLEAR 2023-05-29 21:46:23 -07:00
erc-xdcc.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc.el Improve ERC's internal invisibility API 2023-07-22 07:33:07 -07:00