From ad173a77fbbe2e9ffb178b8765d0a3cc6b972aac Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 24 May 2026 14:34:57 -0500 Subject: refactor: declare cross-module commands bound in custom keymaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit custom-ordering.el binds cj/org-sort-by-todo-and-priority (owned by org-config) and custom-text-enclose.el binds change-inner/change-outer (the change-inner package). Both work at runtime — org-config loads eagerly and text-config autoloads change-inner via use-package :commands — but byte-compiling either module standalone warned "not known to be defined", and the dependency was implicit. Added declare-function for each so the compile is clean and the cross-module relationship is explicit at the top of the file. No autoload needed: the runtime autoload/eager-load already exists, so only the compiler needed telling. custom-buffer-file.el byte-compiles clean already, so it needed no change. --- modules/custom-ordering.el | 4 ++++ modules/custom-text-enclose.el | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/modules/custom-ordering.el b/modules/custom-ordering.el index 69a2d465..ee2f2023 100644 --- a/modules/custom-ordering.el +++ b/modules/custom-ordering.el @@ -23,6 +23,10 @@ (require 'cl-lib) (require 'keybindings) ;; provides cj/custom-keymap +;; Bound in the ordering keymap below but owned by org-config (loaded eagerly +;; in init); declare it so byte-compiling this module standalone is clean. +(declare-function cj/org-sort-by-todo-and-priority "org-config") + (defvar cj/ordering-map) (defun cj/--arrayify (start end quote &optional prefix suffix) diff --git a/modules/custom-text-enclose.el b/modules/custom-text-enclose.el index e1b735a0..e23674ff 100644 --- a/modules/custom-text-enclose.el +++ b/modules/custom-text-enclose.el @@ -23,6 +23,12 @@ (require 'keybindings) ;; provides cj/custom-keymap +;; Bound in the enclose keymap below but owned by the change-inner package +;; (autoloaded via text-config's `use-package :commands'); declare them so +;; byte-compiling this module standalone is clean. +(declare-function change-inner "change-inner") +(declare-function change-outer "change-inner") + (defun cj/--surround (text surround-string) "Internal implementation: Surround TEXT with SURROUND-STRING. TEXT is the string to be surrounded. -- cgit v1.2.3