unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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





  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).