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

Reply via email to