From 05e4b3cba8f0d3eb0f39a34d1b8681a7e1b886a3 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Sep 2023 00:53:20 -0400 Subject: [PATCH] gnu: emacs: Allow producing verbose messages when loading autoloads. * gnu/packages/aux-files/emacs/guix-emacs.el: Expound commentary. (guix-emacs-verbose): New variable. (guix-emacs--load-file-no-error): New procedure. (guix-emacs-autoload-packages): Use it. Signed-off-by: Liliana Marie Prikler --- gnu/packages/aux-files/emacs/guix-emacs.el | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gnu/packages/aux-files/emacs/guix-emacs.el b/gnu/packages/aux-files/emacs/guix-emacs.el index 4db7ec28c9..84284dde39 100644 --- a/gnu/packages/aux-files/emacs/guix-emacs.el +++ b/gnu/packages/aux-files/emacs/guix-emacs.el @@ -22,8 +22,9 @@ ;;; Commentary: -;; This file provides auxiliary code to autoload Emacs packages -;; installed with Guix. +;; This file provides auxiliary code to autoload Emacs packages installed with +;; Guix. To produce verbose messages useful while debugging, set the +;; GUIX-EMACS-VERBOSE variable to true. ;;; Code: (require 'seq) @@ -41,6 +42,15 @@ The files in the list do not have extensions (.el, .elc)." (directory-files directory 'full-name guix-emacs-autoloads-regexp)))) +(defcustom guix-emacs-verbose nil + "Set to true to provide verbose messages, such as when loading packages." + :type 'boolean + :group 'guix-emacs) + +(defun guix-emacs--load-file-no-error (file) + "Load FILE, ignoring any errors" + (load file 'noerror (not guix-emacs-verbose))) + (defun guix-emacs--non-core-load-path () ;; Filter out core Elisp directories, which are already handled by Emacs. (seq-filter (lambda (dir) @@ -63,9 +73,7 @@ The files in the list do not have extensions (.el, .elc)." (interactive) (let ((autoloads (mapcan #'guix-emacs-find-autoloads (guix-emacs--non-core-load-path)))) - (mapc (lambda (f) - (load f 'noerror t)) - autoloads))) + (mapc #'guix-emacs--load-file-no-error autoloads))) ;;;###autoload (defun guix-emacs-load-package-descriptors ()