💥 Refactor add-hook! macro & change arg order
This update may potentially break your usage of add-hook! if you pass the :local or :append properties to it. This is how they used to work: (add-hook! :append 'some-mode-hook #'do-something) Thsoe properties must now follow the hooks, e.g. (add-hook! 'some-mode-hook :append #'do-something) Other changes: - Various add-hook calls have been renamed to add-hook! because I incorrectly assumed `defun` always returned its definition's symbol, when in fact, its return value is "undefined" (so sayeth the documentation). This should fix #1597. - This update adds the ability to add multiple functions to hooks without a list: (add-hook! 'some-mode-hook #'do-something #'do-something-else) - The indentation logic has been changed so that consecutive function symbols at indented at the same level as the first argument, but forms are indent like a defun. (add-hook! 'some-mode-hook #'do-something #'do-something-else) (add-hook! 'some-mode-hook (message "Hello"))
This commit is contained in:
parent
c2ae6f30a5
commit
a3e262c7ac
42 changed files with 248 additions and 225 deletions
|
@ -43,7 +43,7 @@
|
|||
(use-package! solaire-mode
|
||||
:defer t
|
||||
:init
|
||||
(add-hook 'doom-load-theme-hook
|
||||
(add-hook! 'doom-load-theme-hook
|
||||
(defun +doom-solaire-mode-swap-bg-maybe-h ()
|
||||
(pcase-let ((`(,theme . ,swap) (assq doom-theme +doom-solaire-themes)))
|
||||
(require 'solaire-mode)
|
||||
|
@ -53,8 +53,8 @@
|
|||
;; fringe can become unstyled when deleting or focusing frames
|
||||
(add-hook 'focus-in-hook #'solaire-mode-reset)
|
||||
;; Prevent color glitches when reloading either DOOM or loading a new theme
|
||||
(add-hook! :append '(doom-load-theme-hook doom-reload-hook)
|
||||
#'solaire-mode-reset)
|
||||
(add-hook! '(doom-load-theme-hook doom-reload-hook) :append
|
||||
#'solaire-mode-reset)
|
||||
;; org-capture takes an org buffer and narrows it. The result is erroneously
|
||||
;; considered an unreal buffer, so solaire-mode must be restored.
|
||||
(add-hook 'org-capture-mode-hook #'turn-on-solaire-mode)
|
||||
|
@ -78,7 +78,7 @@
|
|||
;; Because fringes can't be given a buffer-local face, they can look odd, so
|
||||
;; we remove them in the minibuffer and which-key popups (they serve no
|
||||
;; purpose there anyway).
|
||||
(add-hook 'solaire-mode-hook
|
||||
(add-hook! 'solaire-mode-hook
|
||||
(defun +doom-disable-fringes-in-minibuffer-h (&rest _)
|
||||
(set-window-fringes (minibuffer-window) 0 0 nil)))
|
||||
|
||||
|
@ -88,6 +88,6 @@
|
|||
(set-window-fringes (get-buffer-window which-key--buffer) 0 0 nil))
|
||||
|
||||
(add-hook! '(minibuffer-setup-hook window-configuration-change-hook)
|
||||
#'+doom-disable-fringes-in-minibuffer-h)
|
||||
#'+doom-disable-fringes-in-minibuffer-h)
|
||||
|
||||
(solaire-global-mode +1))
|
||||
|
|
|
@ -3,4 +3,5 @@
|
|||
;;;###autoload (autoload 'hl-fill-column-mode "hl-fill-column" nil t)
|
||||
|
||||
;;;###autoload
|
||||
(add-hook! (text-mode prog-mode conf-mode) #'hl-fill-column-mode)
|
||||
(add-hook! '(text-mode-hook prog-mode-hook conf-mode-hook)
|
||||
#'hl-fill-column-mode)
|
||||
|
|
|
@ -10,10 +10,11 @@
|
|||
:init
|
||||
;; NOTE In :tools lookup `recenter' is hooked to a bunch of jumping
|
||||
;; commands, which will trigger nav-flash.
|
||||
(add-hook!
|
||||
'(imenu-after-jump-hook better-jumper-post-jump-hook
|
||||
counsel-grep-post-action-hook dumb-jump-after-jump-hook)
|
||||
#'+nav-flash-blink-cursor-maybe-h)
|
||||
(add-hook! '(imenu-after-jump-hook
|
||||
better-jumper-post-jump-hook
|
||||
counsel-grep-post-action-hook
|
||||
dumb-jump-after-jump-hook)
|
||||
#'+nav-flash-blink-cursor-maybe-h)
|
||||
|
||||
(add-hook 'doom-switch-window-hook #'+nav-flash-blink-cursor-maybe-h)
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ adjustment.")
|
|||
:global t
|
||||
:keymap +popup-mode-map
|
||||
(cond (+popup-mode
|
||||
(add-hook 'doom-escape-hook #'+popup-close-on-escape-h t)
|
||||
(add-hook 'doom-escape-hook #'+popup-close-on-escape-h 'append)
|
||||
(setq +popup--old-display-buffer-alist display-buffer-alist
|
||||
display-buffer-alist +popup--display-buffer-alist
|
||||
window--sides-inhibit-check t)
|
||||
|
@ -79,7 +79,8 @@ that window has been changed or closed."
|
|||
:keymap +popup-buffer-mode-map
|
||||
(if (not +popup-buffer-mode)
|
||||
(remove-hook 'after-change-major-mode-hook #'+popup-set-modeline-on-enable-h t)
|
||||
(add-hook 'after-change-major-mode-hook #'+popup-set-modeline-on-enable-h nil t)
|
||||
(add-hook 'after-change-major-mode-hook #'+popup-set-modeline-on-enable-h
|
||||
nil 'local)
|
||||
(when (timerp +popup--timer)
|
||||
(remove-hook 'kill-buffer-hook #'+popup-kill-buffer-hook-h t)
|
||||
(cancel-timer +popup--timer)
|
||||
|
@ -160,13 +161,13 @@ prevent the popup(s) from messing up the UI (or vice versa)."
|
|||
("^\\*CPU-Profiler-Report " :side bottom :vslot 100 :slot 1 :height 0.4 :width 0.5 :quit nil)
|
||||
("^\\*Memory-Profiler-Report " :side bottom :vslot 100 :slot 2 :height 0.4 :width 0.5 :quit nil)))
|
||||
|
||||
(add-hook 'doom-init-ui-hook #'+popup-mode :append)
|
||||
(add-hook 'doom-init-ui-hook #'+popup-mode 'append)
|
||||
|
||||
(add-hook! '+popup-buffer-mode-hook
|
||||
#'(+popup-adjust-fringes-h
|
||||
+popup-adjust-margins-h
|
||||
+popup-set-modeline-on-enable-h
|
||||
+popup-unset-modeline-on-disable-h))
|
||||
#'+popup-adjust-fringes-h
|
||||
#'+popup-adjust-margins-h
|
||||
#'+popup-set-modeline-on-enable-h
|
||||
#'+popup-unset-modeline-on-disable-h)
|
||||
|
||||
|
||||
;;
|
||||
|
|
|
@ -22,7 +22,7 @@ to the right fringe.")
|
|||
(use-package! git-gutter
|
||||
:commands git-gutter:revert-hunk git-gutter:stage-hunk
|
||||
:init
|
||||
(add-hook 'find-file-hook
|
||||
(add-hook! 'find-file-hook
|
||||
(defun +vc-gutter-init-maybe-h ()
|
||||
"Enable `git-gutter-mode' in the current buffer.
|
||||
|
||||
|
@ -67,7 +67,7 @@ is deferred until the file is saved. Respects `git-gutter:disabled-modes'."
|
|||
;; Update git-gutter on focus (in case I was using git externally)
|
||||
(add-hook 'focus-in-hook #'git-gutter:update-all-windows)
|
||||
|
||||
(add-hook! :append '(doom-escape-hook doom-switch-window-hook)
|
||||
(add-hook! '(doom-escape-hook doom-switch-window-hook) :append
|
||||
(defun +vc-gutter-update-h (&rest _)
|
||||
"Refresh git-gutter on ESC. Return nil to prevent shadowing other
|
||||
`doom-escape-hook' hooks."
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
;;; ui/vi-tilde-fringe/autoload.el -*- lexical-binding: t; -*-
|
||||
|
||||
;;;###autoload
|
||||
(add-hook! (prog-mode text-mode conf-mode) #'vi-tilde-fringe-mode)
|
||||
(add-hook! '(prog-mode-hook text-mode-hook conf-mode-hook)
|
||||
#'vi-tilde-fringe-mode)
|
||||
|
|
|
@ -83,7 +83,7 @@ stored in `persp-save-dir'.")
|
|||
(display-buffer-in-side-window
|
||||
warnings '((window-height . shrink-window-if-larger-than-buffer)))))))))))
|
||||
|
||||
(add-hook 'persp-mode-hook
|
||||
(add-hook! 'persp-mode-hook
|
||||
(defun +workspaces-init-persp-mode-h ()
|
||||
(cond (persp-mode
|
||||
;; `uniquify' breaks persp-mode. It renames old buffers, which causes
|
||||
|
@ -109,7 +109,7 @@ stored in `persp-save-dir'.")
|
|||
(setq persp-add-buffer-on-find-file nil
|
||||
persp-add-buffer-on-after-change-major-mode nil)
|
||||
|
||||
(add-hook 'doom-switch-buffer-hook
|
||||
(add-hook! 'doom-switch-buffer-hook
|
||||
(defun +workspaces-add-current-buffer-h ()
|
||||
"Add current buffer to focused perspective."
|
||||
(when persp-mode
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue