]> git.eshelyaron.com Git - emacs.git/commitdiff
Add rcirc-cycle-completion-flag
authorPhilip Kaludercic <philipk@posteo.net>
Sat, 12 Mar 2022 21:18:49 +0000 (22:18 +0100)
committerPhilip Kaludercic <philipk@posteo.net>
Fri, 15 Apr 2022 15:10:45 +0000 (17:10 +0200)
* doc/misc/rcirc.texi: Document new option.
* lisp/net/rcirc.el (rcirc-cycle-completion-flag): Add new option.
(rcirc-mode): Respect new option.

doc/misc/rcirc.texi
etc/NEWS
lisp/net/rcirc.el

index b18ab2a6b29b9556dfac713f32630fe7ebfe8fcd..8253e4040849af6b5489469d2e43379b2fee2a50 100644 (file)
@@ -154,8 +154,11 @@ deego: fsbot rules!
 
 @cindex nick completion
 @cindex completion of nicks
+@vindex rcirc-cycle-completion-flag
 @kindex TAB
 Since this is so common, you can use @key{TAB} to do nick completion.
+By default rcirc will use the default completion system, but you can
+enable @code{rcirc-cycle-completion-flag} to cycle nicks in place.
 
 @node Getting started with rcirc
 @section Getting started with rcirc
index 350a4f6da140ac72eccb2b9e1354d3824c378823..7d474ac107f6cfe82f32c3700099edde02a84230 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -506,6 +506,12 @@ are met.  The conditions are given by the argument, which can be
 +++
 *** New command 'rcirc-when'.
 
++++
+*** New user option 'rcirc-cycle-completion-flag'.
+Rcirc will use the default 'completion-at-point' mechanism.  The
+conventional IRC behaviour of completing by cycling through the
+available options can be restored by enabling this option.
+
 * Editing Changes in Emacs 29.1
 
 ---
index 9d1600ed72f167e1a7ff02ac4b6695d5a837d9dc..5fe65cc7b3e945b42c9c2f19543155c636b5b2e4 100644 (file)
@@ -433,6 +433,20 @@ will be killed."
   :version "28.1"
   :type 'boolean)
 
+(defcustom rcirc-cycle-completion-flag nil
+  "Non-nil means to use cycling for completion in rcirc buffers.
+See the Info node `(emacs) Completion Options' for background on
+what cycling completion means."
+  :version "29.1"
+  :set (lambda (sym val)
+         (dolist (buf (match-buffers '(major-mode . rcirc-mode)))
+           (with-current-buffer buf
+             (if val
+                 (setq-local completion-cycle-threshold t)
+               (kill-local-variable 'completion-cycle-threshold))))
+         (set-default sym val))
+  :type 'boolean)
+
 (defvar-local rcirc-nick nil
   "The nickname used for the current connection.")
 
@@ -1434,7 +1448,8 @@ PROCESS is the process object used for communication.
 
   (add-hook 'completion-at-point-functions
             'rcirc-completion-at-point nil 'local)
-  (setq-local completion-cycle-threshold t)
+  (when rcirc-cycle-completion-flag
+    (setq-local completion-cycle-threshold t))
 
   (run-mode-hooks 'rcirc-mode-hook))