branch: elpa/jabber
commit 7cae1d6110ab9fa6c0f5e6d211e05c81b4d32ecf
Author: Thanos Apollo <[email protected]>
Commit: Thanos Apollo <[email protected]>
disco: Separate command menus
---
lisp/jabber-disco-menu.el | 69 +++++++++++++++++++++++++++++++++++++++++++++++
lisp/jabber-disco.el | 46 -------------------------------
lisp/jabber.el | 1 +
3 files changed, 70 insertions(+), 46 deletions(-)
diff --git a/lisp/jabber-disco-menu.el b/lisp/jabber-disco-menu.el
new file mode 100644
index 0000000000..2cfa4b622e
--- /dev/null
+++ b/lisp/jabber-disco-menu.el
@@ -0,0 +1,69 @@
+;;; jabber-disco-menu.el --- Service discovery command menus -*-
lexical-binding: t; -*-
+
+;; Copyright (C) 2026 Thanos Apollo
+
+;; Maintainer: Thanos Apollo <[email protected]>
+
+;; This file is a part of jabber.el.
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+
+;;; Commentary:
+
+;; Collect discovery-related commands after their feature modules load.
+
+;;; Code:
+
+(require 'keymap-popup)
+(require 'jabber-ahc)
+(require 'jabber-browse)
+(require 'jabber-carbons)
+(require 'jabber-disco)
+(require 'jabber-info)
+(require 'jabber-ping)
+(require 'jabber-register)
+(require 'jabber-search)
+(require 'jabber-time)
+(require 'jabber-vcard)
+(require 'jabber-version)
+
+(defvar jabber-info-menu-map)
+(defvar jabber-service-menu-map)
+
+(keymap-popup-define jabber-info-menu-map
+ "Jabber info/discovery commands."
+ :group "Discovery"
+ "I" ("Get info" jabber-get-info)
+ "i" ("Disco items" jabber-get-disco-items)
+ "d" ("Disco info" jabber-get-disco-info)
+ "b" ("Browse" jabber-get-browse)
+ "v" ("Client version" jabber-get-version)
+ "p" ("Ping" jabber-ping)
+ "t" ("Request time" jabber-get-time)
+ "V" ("View vCard" jabber-vcard-get))
+
+(defun jabber-info-menu ()
+ "Jabber info/discovery commands."
+ (interactive)
+ (keymap-popup jabber-info-menu-map))
+
+(keymap-popup-define jabber-service-menu-map
+ "Jabber service commands."
+ :group "Services"
+ "r" ("Register" jabber-get-register)
+ "s" ("Search directory" jabber-get-search)
+ "c" ("Execute command" jabber-ahc-execute-command)
+ "l" ("Command list" jabber-ahc-get-list)
+ "C" ("Enable carbons" jabber-enable-carbons))
+
+(defun jabber-service-menu ()
+ "Jabber service commands."
+ (interactive)
+ (keymap-popup jabber-service-menu-map))
+
+(provide 'jabber-disco-menu)
+
+;;; jabber-disco-menu.el ends here
diff --git a/lisp/jabber-disco.el b/lisp/jabber-disco.el
index 17271ccfab..800f675795 100644
--- a/lisp/jabber-disco.el
+++ b/lisp/jabber-disco.el
@@ -31,7 +31,6 @@
(require 'cl-lib)
(require 'jabber-iq)
(require 'jabber-xml)
-(require 'keymap-popup)
;; Global reference declarations
@@ -729,50 +728,5 @@ called with JC, the remaining CALLBACK-DATA, and the
obtained RESULT."
(when (car callback-data)
(funcall (car callback-data) jc (cdr callback-data) result))))
-;;; Info and service menus
-
-(declare-function jabber-get-info "jabber-info.el" (jc to))
-(declare-function jabber-get-browse "jabber-browse.el" (jc to))
-(declare-function jabber-get-version "jabber-version.el" (jc to))
-(declare-function jabber-get-time "jabber-time.el" (jc to))
-(declare-function jabber-vcard-get "jabber-vcard.el" (jc jid))
-(declare-function jabber-ping "jabber-ping.el" (to))
-(declare-function jabber-get-register "jabber-register.el" (jc to))
-(declare-function jabber-get-search "jabber-search.el" (jc to))
-(declare-function jabber-ahc-execute-command "jabber-ahc.el" (jc to node))
-(declare-function jabber-ahc-get-list "jabber-ahc.el" (jc to))
-(declare-function jabber-enable-carbons "jabber-carbons.el" (jc))
-
-(keymap-popup-define jabber-info-menu-map
- "Jabber info/discovery commands."
- :group "Discovery"
- "I" ("Get info" jabber-get-info)
- "i" ("Disco items" jabber-get-disco-items)
- "d" ("Disco info" jabber-get-disco-info)
- "b" ("Browse" jabber-get-browse)
- "v" ("Client version" jabber-get-version)
- "p" ("Ping" jabber-ping)
- "t" ("Request time" jabber-get-time)
- "V" ("View vCard" jabber-vcard-get))
-
-(defun jabber-info-menu ()
- "Jabber info/discovery commands."
- (interactive)
- (keymap-popup jabber-info-menu-map))
-
-(keymap-popup-define jabber-service-menu-map
- "Jabber service commands."
- :group "Services"
- "r" ("Register" jabber-get-register)
- "s" ("Search directory" jabber-get-search)
- "c" ("Execute command" jabber-ahc-execute-command)
- "l" ("Command list" jabber-ahc-get-list)
- "C" ("Enable carbons" jabber-enable-carbons))
-
-(defun jabber-service-menu ()
- "Jabber service commands."
- (interactive)
- (keymap-popup jabber-service-menu-map))
-
(provide 'jabber-disco)
;;; jabber-disco.el ends here.
diff --git a/lisp/jabber.el b/lisp/jabber.el
index 2e83c878a9..d739966818 100644
--- a/lisp/jabber.el
+++ b/lisp/jabber.el
@@ -193,6 +193,7 @@ One disabled account with a non-standard port:
(require 'jabber-vcard-avatars)
(require 'jabber-autoaway)
(require 'jabber-time)
+(require 'jabber-disco-menu)
(require 'jabber-truncate)
(when (featurep 'dbusbind)
(require 'jabber-notifications nil t))