unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* [Feature Request] ERC: let erc-join-channel support to select channels from history or a defined list
@ 2017-12-01 10:54 stardiviner
  2017-12-01 18:28 ` Drew Adams
  2017-12-01 19:18 ` Emanuel Berg
  0 siblings, 2 replies; 4+ messages in thread
From: stardiviner @ 2017-12-01 10:54 UTC (permalink / raw)
  To: emacs-help

let erc-join-channel support to select channels from history or a
defined list.


I have a code prototype:

#+begin_src emacs-lisp
(defun erc-join-channel (channel &optional key)
  "Join CHANNEL.

If `point' is at the beginning of a channel name, use that as default."
  (interactive
   (list
    (let ((chnl (if (looking-at "\\([&#+!][^ \n]+\\)") (match-string 1) ""))
          (table (when (erc-server-buffer-live-p)
                   (set-buffer (process-buffer erc-server-process))
                   erc-channel-list)))
      (completing-read "Join channel: " table nil nil nil nil chnl))
    (when (or current-prefix-arg erc-prompt-for-channel-key)
      (read-from-minibuffer "Channel key (RET for none): " nil))))
  (erc-cmd-JOIN channel (when (>= (length key) 1) key)))
#+end_src

#+begin_src emacs-lisp
(defcustom erc-join-channels-frequently-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-frequently-alist
      '((".*\\.freenode.net" ; "freenode.net"
         "#emacs"
         "#org-mode"
         "#lisp"
         "#clojure"
         "#clojure-beginners"
         "#archlinux"
         "#swift-lang"
         "#docker"
         "#hackerrank"
         )))

(defun erc-join-channels-frequently-select (channel &optional key)
  "Select a channel to join from alist of channels to."
  (interactive "P")
  (completing-read "Select a channel to join: "
                   (cdr (car
                         erc-join-channels-frequently-alist)))
  ;; TODO match IRC server for the selected channel.
  )

;; FIXME:
(advice-add 'erc-join-channels-frequently-select :before 'erc-join-channel)
#+end_src


With this feature, user can avoid typing, and don't need to remember the
channel name, and use the join channels history.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [Feature Request] ERC: let erc-join-channel support to select channels from history or a defined list
  2017-12-01 10:54 [Feature Request] ERC: let erc-join-channel support to select channels from history or a defined list stardiviner
@ 2017-12-01 18:28 ` Drew Adams
  2017-12-01 21:53   ` Emanuel Berg
  2017-12-01 19:18 ` Emanuel Berg
  1 sibling, 1 reply; 4+ messages in thread
From: Drew Adams @ 2017-12-01 18:28 UTC (permalink / raw)
  To: stardiviner, emacs-help

> Subject: [Feature Request] ERC: let erc-join-channel support
> to select channels from history or a defined list

Is this a request for vanilla Emacs to do that?  If so,
just as an FYI, `M-x report-emacs-bug' is for enhancement
requests as well as bug reports.

help-gnu-emacs is more of a help-in-using-Emacs list.

(I'm not saying you shouldn't have posted the msg here
- just an FYI about `report-emacs-bug'.)



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Feature Request] ERC: let erc-join-channel support to select channels from history or a defined list
  2017-12-01 10:54 [Feature Request] ERC: let erc-join-channel support to select channels from history or a defined list stardiviner
  2017-12-01 18:28 ` Drew Adams
@ 2017-12-01 19:18 ` Emanuel Berg
  1 sibling, 0 replies; 4+ messages in thread
From: Emanuel Berg @ 2017-12-01 19:18 UTC (permalink / raw)
  To: help-gnu-emacs

stardiviner wrote:

> With this feature, user can avoid typing, and
> don't need to remember the channel name

You sure typed a lot and remembered a lot of
Elisp to do that.

-- 
underground experts united
http://user.it.uu.se/~embe8573




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Feature Request] ERC: let erc-join-channel support to select channels from history or a defined list
  2017-12-01 18:28 ` Drew Adams
@ 2017-12-01 21:53   ` Emanuel Berg
  0 siblings, 0 replies; 4+ messages in thread
From: Emanuel Berg @ 2017-12-01 21:53 UTC (permalink / raw)
  To: help-gnu-emacs

Drew Adams wrote:

> Is this a request for vanilla Emacs to do
> that? If so, just as an FYI, `M-x
> report-emacs-bug' is for enhancement requests
> as well as bug reports.
>
> help-gnu-emacs is more of
> a help-in-using-Emacs list.
>
> (I'm not saying you shouldn't have posted the
> msg here - just an FYI about
> `report-emacs-bug'.)

There is also gmane.emacs.erc.general which is
erc-discuss@gnu.org . But as said ERC or
anything Elisp is never OT on
gmane.emacs.help ...

-- 
underground experts united
http://user.it.uu.se/~embe8573




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-12-01 21:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-01 10:54 [Feature Request] ERC: let erc-join-channel support to select channels from history or a defined list stardiviner
2017-12-01 18:28 ` Drew Adams
2017-12-01 21:53   ` Emanuel Berg
2017-12-01 19:18 ` Emanuel Berg

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