1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00
emacs/lisp/erc
F. Jason Park 9c65ac7365 Warn when customizing minor-mode vars for ERC modules
* lisp/erc/erc-common.el: (erc--inside-mode-toggle-p): Add global var
to inhibit mode toggles from being run by `erc-update-modules'.  It
must be non-nil inside custom-set functions for mode toggles created
by `define-erc-module'.
(erc--favor-changed-reverted-modules-state): Add new helper to show a
"SET" Custom state for `erc-modules' except when reverting to the
default value because \"STANDARD\" always takes precedence, as
explained somewhat in bug#12864.
(erc--assemble-toggle): Don't modify `erc-modules' when run from
custom-set function.
(erc--neuter-custom-variable-state): Add new function to serve as a
phony getter that deceives Customize into thinking the variable is
always set to its standard value.  The justification for this is that
toggling a module's minor mode in Customize has never worked and has
only sewn confusion in new users.  Without this hack, mode widgets
show a state of "CHANGED outside Customize", which alone is probably
preferable, except that they all end up toggled open, bringing them
unwanted attention and distracting the user.
(erc--tick-module-checkbox): Add helper to toggle the appropriate
checkbox in the `erc-modules' widget when a user interactively toggles
a minor-mode state variable.
(erc--prepare-custom-module-type): Create spec for minor-mode Custom
`:type', deferring various aspects until module-definition time.
(define-erc-module): Add `:get' and `:type' keywords to be passed to
`defcustom' definition for global modules.
* lisp/erc/erc.el (erc-modules): Inhibit `erc-update-modules' when run
from a minor-mode toggle's custom-set function.
* test/lisp/erc/erc-tests.el (define-erc-module--global,
define-erc-module--local): Update `erc-modules' mutations with
`erc--inside-mode-toggle-p' guard conditions.  (Bug#60935.)
2023-04-08 14:23:51 -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 Copy over upstream Compat macros to erc-compat 2023-04-08 14:23:50 -07:00
erc-button.el Modify erc-mode-map in module definitions 2023-04-08 14:23:51 -07:00
erc-capab.el Don't associate ERC modules with undefined groups 2023-04-08 14:23:51 -07:00
erc-common.el Warn when customizing minor-mode vars for ERC modules 2023-04-08 14:23:51 -07:00
erc-compat.el Copy over upstream Compat macros to erc-compat 2023-04-08 14:23:50 -07:00
erc-dcc.el Fix DCC GET flag parsing in erc-dcc 2023-04-08 14:23:50 -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 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-goodies.el Convert ERC's Imenu integration into proper module 2023-04-08 14:23:51 -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 Convert ERC's Imenu integration into proper module 2023-04-08 14:23:51 -07:00
erc-join.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05: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 Modify erc-mode-map in module definitions 2023-04-08 14:23:51 -07:00
erc-match.el Modify erc-mode-map in module definitions 2023-04-08 14:23:51 -07:00
erc-menu.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-netsplit.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-networks.el Remove obsolete server buffers on MOTD in erc-track 2023-01-10 06:34:01 -08: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 ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-sasl.el Split overlong outgoing messages in erc-sasl 2023-04-08 14:23:50 -07:00
erc-services.el Leverage loaddefs for migrating ERC modules 2023-04-08 14:23:50 -07:00
erc-sound.el Leverage loaddefs for migrating ERC modules 2023-04-08 14:23:50 -07:00
erc-speedbar.el Don't require erc-goodies in erc.el 2023-04-08 14:23:51 -07:00
erc-spelling.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-stamp.el Leverage loaddefs for migrating ERC modules 2023-04-08 14:23:50 -07:00
erc-status-sidebar.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-track.el Remove obsolete server buffers on MOTD in erc-track 2023-01-10 06:34:01 -08:00
erc-truncate.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc-xdcc.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
erc.el Warn when customizing minor-mode vars for ERC modules 2023-04-08 14:23:51 -07:00