1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-16 19:00:55 -08:00

Simplify erc-tab interface

* etc/ERC-NEWS: Improve section mentioning `erc-tab'.
* lisp/erc/erc-button.el (erc-button-alist): Restore a commented out
version of the "<URL ...>" entry, which was dropped in 5adda2f468
"Revise FORM-as-function interface in erc-button-alist" for being
redundant.  This may help unlikely objectors better adapt to the
churn.
(erc-button-next, erc-button-previous): Don't bother accommodating raw
prefix arguments; expect numeric arguments only.
* lisp/erc/erc.el (erc-tab): Change interactive spec to lowercase
"p".  (Bug#60933)
This commit is contained in:
F. Jason Park 2023-05-22 23:42:11 -07:00
parent 8a149966dd
commit 8bef8a5566
3 changed files with 13 additions and 14 deletions

View file

@ -216,12 +216,12 @@ changes are encouraged to voice their concerns on the bug list.
*** Miscellaneous changes
Two helper macros from GNU ELPA's Compat library are now available to
third-party modules as 'erc-compat-call' and 'erc-compat-function'.
In the area of buttons, 'Info-goto-node' has been supplanted by plain
old 'info' in 'erc-button-alist', and the bracketed "<URL:...>"
pattern entry has been removed because it was more or less redundant.
And the "TAB" key is now bound to a new command, 'erc-tab', that only
calls 'completion-at-point' when point is in the input area and
module-specific commands, like 'erc-button-next', otherwise.
In 'erc-button-alist', 'Info-goto-node' has been supplanted by plain
old 'info', and the "<URL:...>" entry has been removed because it was
more or less redundant. In all ERC buffers, the "<TAB>" key is now
bound to a new command, 'erc-tab', that calls 'completion-at-point'
inside the input area and otherwise dispatches module-specific
commands, like 'erc-button-next'.
* Changes in ERC 5.5

View file

@ -128,6 +128,7 @@ longer than `erc-fill-column'."
;; things hard to maintain.
'((nicknames 0 erc-button-buttonize-nicks erc-nick-popup 0)
(erc-button-url-regexp 0 t browse-url-button-open-url 0)
;; ("<URL: *\\([^<> ]+\\) *>" 0 t browse-url-button-open-url 1)
;;; ("(\\(\\([^~\n \t@][^\n \t@]*\\)@\\([a-zA-Z0-9.:-]+\\)\\)" 1 t finger 2 3)
;; emacs internal
("[`]\\([a-zA-Z][-a-zA-Z_0-9!*<=>+]+\\)[']"
@ -629,15 +630,13 @@ greater than `point-min' with a text property of `erc-callback'.")
"Go to the ARGth next button."
(declare (advertised-calling-convention (arg) "30.1"))
(interactive "p")
(setq arg (pcase arg ((pred listp) (prefix-numeric-value arg)) (_ arg)))
(erc--button-next arg))
(erc--button-next (or arg 1)))
(defun erc-button-previous (&optional arg)
"Go to ARGth previous button."
(declare (advertised-calling-convention (arg) "30.1"))
(interactive "p")
(setq arg (pcase arg ((pred listp) (prefix-numeric-value arg)) (_ arg)))
(erc--button-next (- arg)))
(erc--button-next (- (or arg 1))))
(defun erc-button-previous-of-nick (arg)
"Go to ARGth previous button for nick at point."

View file

@ -4773,11 +4773,11 @@ This places `point' just after the prompt, or at the beginning of the line."
"Functions to try when user hits \\`TAB' outside of input area.
Called with a numeric prefix arg.")
(defun erc-tab (&optional arg)
(defun erc-tab (arg)
"Call `completion-at-point' when typing in the input area.
Otherwise call members of `erc--tab-functions' with raw prefix
ARG until one of them returns non-nil."
(interactive "P")
Otherwise call members of `erc--tab-functions' with a numeric
prefix ARG until one of them returns non-nil."
(interactive "p")
(if (>= (point) erc-input-marker)
(completion-at-point)
(run-hook-with-args-until-success 'erc--tab-functions arg)))