From: Stefan Kangas <stefan@marxist.se>
To: Amin Bandali <bandali@gnu.org>
Cc: stardiviner <numbchild@gmail.com>,
Lars Ingebrigtsen <larsi@gnus.org>,
29533@debbugs.gnu.org
Subject: bug#29533: Fwd: [Feature Request] ERC: let erc-join-channel support to select channels from history or a defined list
Date: Mon, 18 May 2020 17:15:33 -0700 [thread overview]
Message-ID: <CADwFkmmd8Nw3D0r3GJcvjNyZb2d87DytPgr7K3hevSrbZU34kA@mail.gmail.com> (raw)
In-Reply-To: <87lflpcu2x.fsf@gmail.com>
Hi Amin,
stardiviner <numbchild@gmail.com> writes:
> At last, I attached my generated commit in attachment.
Could you please help review the below patch? I don't really use ERC.
Thanks in advance.
Best regards,
Stefan Kangas
> From 26f73fe065196ab8759f6c7f046587e47672ad47 Mon Sep 17 00:00:00 2001
> From: stardiviner <numbchild@gmail.com>
> Date: Mon, 18 May 2020 20:16:21 +0800
> Subject: [PATCH] Join channel smartly from alist of stored channels
>
> * lisp/erc/erc.el (erc-mode-map): Add an option to store your frequently
> joined channels. And replace original `erc-join-channel' with
> `erc-join-channel-select'.
> ---
> lisp/erc/erc.el | 41 ++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 40 insertions(+), 1 deletion(-)
>
> diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
> index cfde84e19a..be59b4203f 100644
> --- a/lisp/erc/erc.el
> +++ b/lisp/erc/erc.el
> @@ -1161,7 +1161,7 @@ erc-mode-map
> (define-key map "\C-c\C-e" 'erc-toggle-ctcp-autoresponse)
> (define-key map "\C-c\C-f" 'erc-toggle-flood-control)
> (define-key map "\C-c\C-i" 'erc-invite-only-mode)
> - (define-key map "\C-c\C-j" 'erc-join-channel)
> + (define-key map "\C-c\C-j" 'erc-join-channel-select)
> (define-key map "\C-c\C-n" 'erc-channel-names)
> (define-key map "\C-c\C-o" 'erc-get-channel-mode-from-keypress)
> (define-key map "\C-c\C-p" 'erc-part-from-channel)
> @@ -3993,6 +3993,34 @@ erc-input-action
> (if (not (string-match "^\\s-*$" action))
> (erc-send-action (erc-default-target) action))))
>
> +(defcustom erc-join-channels-alist nil
> + "Alist of channels to select when you join channels.
> +
> +Every element in the alist has the form (SERVER . CHANNELS).
> +SERVER is a regexp matching the server, and channels is the
> +list of channels to join.
> +
> +If the channel(s) require channel keys for joining, the passwords
> +are found via auth-source. For instance, if you use ~/.authinfo
> +as your auth-source backend, then put something like the
> +following in that file:
> +
> +machine irc.example.net login \"#fsf\" password sEcReT
> +
> +Customize this variable to set the value for your first connect.
> +Once you are connected and join and part channels, this alist
> +keeps track of what channels you are on, and will join them
> +again when you get disconnected. When you restart Emacs, however,
> +those changes are lost, and the customization you saved the last
> +time is used again."
> + :group 'erc-join
> + :type '(repeat (cons :tag "Server"
> + (regexp :tag "Name")
> + (repeat :tag "Channels"
> + (string :tag "Name")))))
> +
> +(setq erc-join-channels-alist '(("*.freenode.net" "#emacs" "#org-mode")))
> +
> (defun erc-join-channel (channel &optional key)
> "Join CHANNEL.
>
> @@ -4008,6 +4036,17 @@ erc-join-channel
> (read-from-minibuffer "Channel key (RET for none): " nil))))
> (erc-cmd-JOIN channel (when (>= (length key) 1) key)))
>
> +(defun erc-join-channel-select ()
> + "Select a channel to join from alist of channels to."
> + (interactive)
> + (erc-join-channel
> + (completing-read
> + "Select a channel: "
> + (cdr (assoc
> + (completing-read "Select a server: "
> + (mapcar 'car erc-join-channels-alist))
> + erc-join-channels-alist)))))
> +
> (defun erc-part-from-channel (reason)
> "Part from the current channel and prompt for a REASON."
> (interactive
> --
> 2.26.2
next prev parent reply other threads:[~2020-05-19 0:15 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <e987db8a-fcf6-da73-d914-1deb358b08d3@gmail.com>
2017-12-02 5:44 ` bug#29533: Fwd: [Feature Request] ERC: let erc-join-channel support to select channels from history or a defined list stardiviner
2019-10-23 9:21 ` Lars Ingebrigtsen
2020-05-04 12:07 ` Stefan Kangas
2020-05-04 12:38 ` stardiviner
2020-05-04 13:12 ` Stefan Kangas
2020-05-12 5:36 ` stardiviner
2020-05-12 12:48 ` Stefan Kangas
2020-05-13 8:41 ` stardiviner
2020-05-13 11:37 ` stardiviner
2020-05-13 12:32 ` Stefan Kangas
2020-05-14 3:38 ` stardiviner
2020-05-14 14:40 ` Stefan Kangas
2020-05-18 12:21 ` stardiviner
2020-05-19 0:15 ` Stefan Kangas [this message]
2020-08-03 8:51 ` Lars Ingebrigtsen
2020-08-03 13:47 ` bug#29533: [CLOSED] " numbchild
2020-08-04 8:48 ` Lars Ingebrigtsen
2020-05-13 14:29 ` Noam Postavsky
2020-05-14 3:32 ` stardiviner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CADwFkmmd8Nw3D0r3GJcvjNyZb2d87DytPgr7K3hevSrbZU34kA@mail.gmail.com \
--to=stefan@marxist.se \
--cc=29533@debbugs.gnu.org \
--cc=bandali@gnu.org \
--cc=larsi@gnus.org \
--cc=numbchild@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).