aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorF. Jason Park2022-12-09 22:00:59 -0800
committerF. Jason Park2023-04-08 14:23:51 -0700
commit52c8d5371e4649d3dec4d254dcc483f8dee6b49c (patch)
treedd97cd0d031bdf527aa1aef82fa9fa6fc4c82796
parent0e4c07dc7448aafd2aa5f6e101d7b7aac23d8a6b (diff)
downloademacs-52c8d5371e4649d3dec4d254dcc483f8dee6b49c.tar.gz
emacs-52c8d5371e4649d3dec4d254dcc483f8dee6b49c.zip
* etc/ERC-NEWS: Add section for ERC 5.6.
-rw-r--r--etc/ERC-NEWS177
1 files changed, 177 insertions, 0 deletions
diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS
index 434bfab94e9..8f1b89f268b 100644
--- a/etc/ERC-NEWS
+++ b/etc/ERC-NEWS
@@ -12,6 +12,183 @@ extensible IRC (Internet Relay Chat) client distributed with
12GNU Emacs since Emacs version 22.1. 12GNU Emacs since Emacs version 22.1.
13 13
14 14
15* Changes in ERC 5.6
16
17** Module 'keep-place' now offers a visual indicator.
18Remember your place in ERC buffers a bit more easily while retaining
19the freedom to look around. Optionally sync the indicator to any
20progress made when you haven't yet caught up to the live stream. See
21options 'erc-keep-place-indicator-style' and friends and new module
22'keep-place-indicator', which for now must be added manually to
23'erc-modules'.
24
25** Module 'fill' now offers a style based on 'visual-line-mode'.
26This fill style mimics the "hanging indent" look of 'erc-fill-static'
27and provides some movement and editing commands to optionally tame the
28less familiar aspects of 'visual-line' behavior. An interactive
29helper called 'erc-fill-wrap-nudge' allows for dynamic "refilling" of
30buffers on the fly. Set 'erc-fill-function' to 'erc-fill-wrap' to get
31started.
32
33** A unified interactive entry point.
34New users are often dismayed to discover that M-x ERC doesn't connect
35to its default network, Libera.Chat, over TLS. Though perhaps a
36decade overdue, this is no longer the case. Other UX improvements in
37this area aim to make the process of connecting interactively slightly
38more streamlined and less repetitive, even for veteran users.
39
40** New buffer-display option 'erc-interactive-display'.
41A point of friction for new users and one only just introduced with
42ERC 5.5 has been the lack of visual feedback when first connecting via
43M-x erc. As explained below in the news for 5.5, the discovery of a
44security issue led to new ERC buffers being "buried" on creation. On
45further reflection, this was judged to have been an overcorrection in
46the case of interactive invocations, hence the new option
47'erc-interactive-display', which is set to 'buffer' (i.e., "take me
48there") by default. Accompanying this addition are "display"-suffixed
49aliases for related options 'erc-join-buffer' and 'erc-auto-query',
50which users have reported as being difficult to discover and remember.
51
52** Setting a module's mode variable via Customize earns a warning.
53Trying and failing to activate a module via its minor mode's Custom
54widget has been an age-old annoyance for new users. Previously
55ineffective, this method now actually works, but it also admonishes
56users to edit the 'erc-modules' widget instead.
57
58** The option 'erc-timestamp-use-align-to' is more versatile.
59While this option has always offered to right-align stamps via the
60'display' text property, it's now more effective at doing so when set
61to a number indicating an offset from the right edge. And when set to
62the symbol 'margin', it displays stamps in the right margin, although,
63at the moment, this is mostly intended for use by other modules, such
64as 'fill-wrap', described above. For both these variants, users of
65the 'log' module may want to customize 'erc-log-filter-function' to
66'erc-stamp-prefix-log-filter' to avoid ragged right-hand stamps
67appearing in their saved logs.
68
69** Smarter reconnect handling for users on the move.
70ERC now offers a new, experimental reconnect strategy in the function
71'erc-server-delayed-check-reconnect', which tests for underlying
72connectivity before attempting to reconnect in earnest. See options
73'erc-server-reconnect-function' and 'erc-nickname-in-use-functions' to
74get started.
75
76** Easily constrain all ERC-related business to a dedicated frame.
77The option 'erc-reuse-frames' can now be set to 'displayed', which
78tells ERC to show new buffers in frames already occupied by buffers
79from the same connection. This customization depends on the option
80'erc-buffer-display' (formerly 'erc-join-buffer') being set to
81'frame'. If you find the name 'displayed' unhelpful, please suggest
82an alternative by writing to the mailing list.
83
84** Some keybindings are now set by modules rather than their libraries.
85To put it another way, simply loading a built-in module's library no
86longer modifies 'erc-mode-map'. Instead, modifications occur during
87module setup. This should not impact most user configs since ERC
88doesn't bother with keys already taken and only removes bindings it's
89previously created. Note that while all affected bindings still
90reside in 'erc-mode-map', future built-in modules will use their own
91minor-mode maps, and new third-party modules should do the same.
92
93** The option 'erc-timestamp-format-right' has been deprecated.
94Having to account for this option prevented other ERC modules from
95easily determining what right-hand stamps would look like before
96insertion, which is knowledge needed for certain UI decisions. The
97way ERC has chosen to address this is imperfect and boils down to
98asking users who've customized this option to switch to
99'erc-timestamp-format' instead. If you're affected by this and feel
100that some other solution, like automatic migration, is justified,
101please make that known on the bug list.
102
103** The 'nicknames' entry in 'erc-button-alist' is officially exceptional.
104It's no secret that the 'buttons' module treats potential nicknames
105specially. To simplify ERC's move to next-gen "rich UI" extensions,
106this special treatment is being canonized. From now on, all values
107other than the symbol 'erc-button-buttonize-nicks' appearing in the
108"FORM" field (third element) of this entry are considered deprecated
109and will incur a warning.
110
111** Miscellaneous UX changes.
112Some minor quality-of-life niceties have finally made their way to
113ERC. For example, the function 'erc-echo-timestamp' is now
114interactive and can be invoked on any message to view its timestamp in
115the echo area. Also, the 'irccontrols' module now supports additional
116colors and special handling for "spoilers" (hidden text). And issuing
117an "/MOTD" now dispatches a purpose-built command handler.
118
119** Changes in the library API.
120
121*** Some top-level dependencies have been removed.
122The library 'erc-goodies' is no longer loaded by ERC's main library.
123This was done to further cement the move toward a unidirectional
124dependency flow begun in 5.5. Additionally, a few barely used and
125newly introduced dependencies are now lazily loaded, which may upset
126some third-party code. The first of these is 'pp' because its
127'pp-to-string' is autoloaded in all supported ERC versions. Also gone
128are 'thingatpt', 'time-date', and 'iso8601'. All were used ultra
129sparingly, and the latter two have only been around for one minor
130release cycle, so their removal hopefully won't cause much churn.
131
132*** Some ERC-applied text properties have changed.
133Chiefly, 'rear-sticky' has been replaced by 'erc-command', which
134records the IRC command (or numeric) associated with a message. Less
135impactfully, the value of the 'field' property for ERC's prompt has
136changed from 't' to the more useful 'erc-prompt', although the
137property of the same name has been retained.
138
139*** ERC now manages timestamp-related properties a bit differently.
140For starters, the 'cursor-sensor-functions' property no longer
141contains unique closures and thus no longer proves effective for
142traversing messages. To compensate, a new property, 'erc-timestamp',
143now spans message bodies but not the newlines delimiting them.
144Somewhat relatedly, the function 'erc-insert-aligned' has been
145deprecated and removed from the primary client code path.
146
147*** The role of a module's Custom group is now more clearly defined.
148Associating built-in modules with Custom groups and provided library
149features has improved. More specifically, a module's group now enjoys
150the singular purpose of determining where the module's minor mode
151variable lives in the Customize interface. And although ERC is now
152slightly more adept at linking these entities, third-parties are still
153encouraged to keep a module's name aligned with its group's as well as
154the provided feature of its containing library, if only for the usual
155reasons of namespace hygiene and discoverability.
156
157*** ERC now supports arbitrary CHANTYPES.
158Specifically, channels can be prefixed with any predesignated
159character, mainly to afford more flexibility to specialty services,
160like bridges to other protocols.
161
162*** 'erc-cmd-HELP' recognizes subcommands.
163Some IRC "slash" commands are hierarchical and require users to
164specify a subcommand to actually carry out anything of consequence.
165Built-in modules can now provide more detailed help for a particular
166subcommand by telling ERC to defer to a specialized handler.
167
168*** Longtime quasi modules have been made proper.
169The 'fill' module is now defined by 'define-erc-module'. The same
170goes for ERC's imenu integration, which has 'imenu' now appearing in
171the default value of 'erc-modules'.
172
173*** ERC's prompt survives the insertion of user input and messages.
174Previously, ERC's prompt and its input marker disappeared while
175running hooks during message insertion, and the position of its
176"insert marker" (ERC's per-buffer process mark) was inconsistent
177during these spells. To make insertion handling more predictable in
178preparation for incorporating various protocol extensions, the prompt
179and its bounding markers have become perennial fixtures. In rare
180cases, these changes may mean third-party code needs tweaking, for
181example, requiring the use of 'insert-before-markers' instead of
182'insert'. As always, users feeling unduly inconvenienced by these
183changes are encouraged to voice their concerns on the bug list.
184
185*** Miscellaneous changes
186For autoloading purposes, 'Info-goto-node' has been supplanted by
187plain old 'info' in 'erc-button-alist', and two helper macros from GNU
188ELPA's Compat library are now available to third-party modules as
189'erc-compat-call' and 'erc-compat-function'.
190
191
15* Changes in ERC 5.5 192* Changes in ERC 5.5
16 193
17** Smarter buffer naming for withstanding collisions. 194** Smarter buffer naming for withstanding collisions.