From a5fe45e8db98f2405b6ec3d325d9d4366434faa7 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Fri, 21 May 2021 10:48:05 -0500 Subject: Comment out `hook-defun' The only plus `hook-defun' has over (add-hook 'hook (defun name ... )) is the ability to add the same function to multiple hooks at once. My init files don't use that functionality, so I've retired this macro for now. I'm thinking, honestly, that if a function is used in more than one hook, it should be defined separately and added to each hook in turn ... you know, like Emacs does it by default. --- early-init.el | 36 +++++++++++++++++++----------------- gnus.el | 7 ++++--- init.el | 46 ++++++++++++++++++++++++++-------------------- lisp/acdw.el | 22 +++++++++++----------- 4 files changed, 60 insertions(+), 51 deletions(-) diff --git a/early-init.el b/early-init.el index 622d220..bb717d6 100644 --- a/early-init.el +++ b/early-init.el @@ -34,11 +34,12 @@ inhibit-x-resources t) (acdw/gc-disable) -(hook-defun post-init-reset after-init-hook - (acdw/gc-enable) - (dolist (handler file-name-handler-alist) - (add-to-list 'orig-file-name-handler-alist handler)) - (setq file-name-handler-alist orig-file-name-handler-alist)) +(add-hook 'after-init-hook + (defun after-init@reset () + (acdw/gc-enable) + (dolist (handler file-name-handler-alist) + (add-to-list 'orig-file-name-handler-alist handler)) + (setq file-name-handler-alist orig-file-name-handler-alist))) ;;; Frame settings (setq default-frame-alist ; Remove most UI @@ -60,18 +61,6 @@ inhibit-x-resources t ; Don't load ~/.Xresources ) -(hook-defun disable-ui-modes after-init-hook - (dolist (mode ;; each mode is of the form (MODE . FRAME-ALIST-VAR) - '((tool-bar-mode . tool-bar-lines) - (menu-bar-mode . menu-bar-lines) - (scroll-bar-mode . vertical-scroll-bars) - (horizontal-scroll-bar-mode . horizontal-scroll-bars) - )) - (let ((setting (alist-get (cdr mode) default-frame-alist))) - (when (or (not setting) - (= 0 setting)) - (funcall (car mode) -1))))) - (add-function :after after-focus-change-function (defun acdw/first-frame-setup () ;; fonts @@ -96,6 +85,19 @@ ;; only run this once (remove-function after-focus-change-function 'acdw/first-frame-setup))) +(add-hook 'after-init-hook + (defun after-init@disable-ui-modes () + (dolist (mode ;; each mode is of the form (MODE . FRAME-ALIST-VAR) + '((tool-bar-mode . tool-bar-lines) + (menu-bar-mode . menu-bar-lines) + (scroll-bar-mode . vertical-scroll-bars) + (horizontal-scroll-bar-mode . horizontal-scroll-bars) + )) + (let ((setting (alist-get (cdr mode) default-frame-alist))) + (when (or (not setting) + (= 0 setting)) + (funcall (car mode) -1)))))) + ;;; Bootstrap package manager (`straight.el') diff --git a/gnus.el b/gnus.el index 5fdb08f..6c244d7 100644 --- a/gnus.el +++ b/gnus.el @@ -109,9 +109,10 @@ (t (mailcap-parse-mailcaps)))) ;;; Composing mail -(hook-defun setup-message-mode message-mode-hook - (flyspell-mode +1) - (local-set-key (kbd "TAB") #'bbdb-complete-mail)) +(add-hook 'message-mode-hook + (defun message-mode@setup () + (flyspell-mode +1) + (local-set-key (kbd "TAB") #'bbdb-complete-mail))) ;;; Sending mail (setq send-mail-function #'smtpmail-send-it diff --git a/init.el b/init.el index cf69c1b..a114c94 100644 --- a/init.el +++ b/init.el @@ -274,10 +274,12 @@ (:leader "s" eshell-pop-or-quit) - (hook-defun eshell-setup 'eshell-mode-hook - (define-key eshell-mode-map (kbd "C-d") #'eshell-quit-or-delete-char) - (when (boundp 'simple-modeline--mode-line) - (setq mode-line-format '(:eval simple-modeline--mode-line))))) + (add-hook 'eshell-mode-hook + (defun eshell-mode@setup () + (define-key eshell-mode-map (kbd "C-d") + #'eshell-quit-or-delete-char) + (when (boundp 'simple-modeline--mode-line) + (setq mode-line-format '(:eval simple-modeline--mode-line)))))) (setup eww (:option eww-search-prefix "https://duckduckgo.com/html?q=" @@ -418,9 +420,10 @@ (setup prog (:option smie-indent-basic tab-width) - (hook-defun auto-fill-prog-mode prog-mode-hook - (setq-local comment-auto-fill-only-comments t) - (turn-on-auto-fill)) + (add-hook 'prog-mode-hook + (defun prog-mode@auto-fill () + (setq-local comment-auto-fill-only-comments t) + (turn-on-auto-fill))) (:option show-paren-delay 0 show-paren-style 'mixed @@ -526,11 +529,12 @@ "Welcome to GNU Emacs.\n\n") initial-major-mode 'emacs-lisp-mode) - (hook-defun immortal-scratch kill-buffer-query-functions - (if (eq (current-buffer) (get-buffer "*scratch*")) - (progn (bury-buffer) - nil) - t))) + (add-hook 'kill-buffer-query-functions + (defun kill-buffer-query@immortal-scratch () + (if (eq (current-buffer) (get-buffer "*scratch*")) + (progn (bury-buffer) + nil) + t)))) (setup scrolling (:option auto-window-vscroll nil @@ -673,14 +677,16 @@ (apheleia-global-mode +1) ;; Use a dumb formatter on modes that `apheleia' doesn't work for. - (hook-defun dumb-auto-format before-save-hook - (setq stupid-modes '(makefile-mode - org-mode)) - ;; If there's no apheleia formatter for the mode, just indent the buffer. - (unless (or (apply #'derived-mode-p stupid-modes) - (and (fboundp 'apheleia--get-formatter-command) - (apheleia--get-formatter-command))) - (indent-region (point-min) (point-max))))) + (add-hook 'before-save-hook + (defun before-save@dumb-auto-format () + (setq stupid-modes '(makefile-mode + org-mode)) + ;; If there's no apheleia formatter for the mode, just indent the + ;; buffer. + (unless (or (apply #'derived-mode-p stupid-modes) + (and (fboundp 'apheleia--get-formatter-command) + (apheleia--get-formatter-command))) + (indent-region (point-min) (point-max)))))) (setup (:straight async) (autoload 'dired-async-mode "dired-async.el" nil t) diff --git a/lisp/acdw.el b/lisp/acdw.el index 4a7d4b3..c48c4e3 100644 --- a/lisp/acdw.el +++ b/lisp/acdw.el @@ -65,17 +65,17 @@ ARG). When called with multiple arguments or a list, it returns file nil))) -(defmacro hook-defun (name hooks &rest forms) - "Define a function NAME that executes FORMS, and add it to -each hook in HOOKS." - (declare (indent 2)) - (let ((func-name (intern (concat "hook-defun-" (symbol-name name)))) - (hook-list (if (consp hooks) hooks (list hooks))) - (hook-defun-add-hook-list)) - `(progn - (defun ,func-name () "Defined by `hook-defun'." ,@forms) - ,@(dolist (hook hook-list hook-defun-add-hook-list) - (push `(add-hook ',hook #',func-name) hook-defun-add-hook-list))))) +;; (defmacro hook-defun (name hooks &rest forms) +;; "Define a function NAME that executes FORMS, and add it to +;; each hook in HOOKS." +;; (declare (indent 2)) +;; (let ((func-name (intern (concat "hook-defun-" (symbol-name name)))) +;; (hook-list (if (consp hooks) hooks (list hooks))) +;; (hook-defun-add-hook-list)) +;; `(progn +;; (defun ,func-name () "Defined by `hook-defun'." ,@forms) +;; ,@(dolist (hook hook-list hook-defun-add-hook-list) +;; (push `(add-hook ',hook #',func-name) hook-defun-add-hook-list))))) (defun kill-region-or-backward-word (arg) "Kill region if active, or backward word if not." -- cgit 1.4.1-21-gabe81