diff --git a/core/core-editor.el b/core/core-editor.el index bba32d48a..2f7ab56d2 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -78,6 +78,16 @@ fundamental-mode) for performance sake." (electric-indent-mode -1) ; enabled by default in Emacs 25+. No thanks. +(def-package! server + :when (display-graphic-p) + :defer 1 + :after-call (pre-command-hook after-find-file) + :config + (when-let* ((name (getenv "EMACS_SERVER_NAME"))) + (setq server-name name)) + (unless (server-running-p) + (server-start))) + (def-package! autorevert ;; revert buffers for changed files :after-call after-find-file @@ -87,7 +97,7 @@ fundamental-mode) for performance sake." (def-package! savehist ;; persist variables across sessions - :defer 1 + :defer-incrementally (custom savehist) :after-call post-command-hook :config (setq savehist-file (concat doom-cache-dir "savehist") @@ -119,7 +129,7 @@ savehist file." (def-package! recentf ;; Keep track of recently opened files - :defer 1 + :defer-incrementally (easymenu tree-widget timer recentf) :after-call after-find-file :commands recentf-open-files :config @@ -138,16 +148,6 @@ savehist file." (add-hook 'kill-emacs-hook #'recentf-cleanup) (quiet! (recentf-mode +1)))) -(def-package! server - :when (display-graphic-p) - :defer 1 - :after-call (pre-command-hook after-find-file) - :config - (when-let* ((name (getenv "EMACS_SERVER_NAME"))) - (setq server-name name)) - (unless (server-running-p) - (server-start))) - ;; ;; Packages diff --git a/core/core-modules.el b/core/core-modules.el index d3567fa31..808b1b30c 100644 --- a/core/core-modules.el +++ b/core/core-modules.el @@ -204,10 +204,23 @@ non-nil, return paths of possible modules, activated or otherwise." ;; remove itself from the hook/function). (defvar doom--deferred-packages-alist '(t)) (after! use-package-core + (add-to-list 'use-package-deferring-keywords :defer-incrementally nil #'eq) (add-to-list 'use-package-deferring-keywords :after-call nil #'eq) + + (setq use-package-keywords + (use-package-list-insert :defer-incrementally use-package-keywords :after)) (setq use-package-keywords (use-package-list-insert :after-call use-package-keywords :after)) + (defalias 'use-package-normalize/:defer-incrementally 'use-package-normalize-symlist) + (defun use-package-handler/:defer-incrementally (name _keyword targets rest state) + (use-package-concat + `((doom-load-packages-incrementally + ',(if (listp targets) + targets + (list name)))) + (use-package-process-keywords name rest state))) + (defalias 'use-package-normalize/:after-call 'use-package-normalize-symlist) (defun use-package-handler/:after-call (name _keyword hooks rest state) (if (plist-get state :demand) diff --git a/modules/tools/magit/config.el b/modules/tools/magit/config.el index 8157147db..6792eecec 100644 --- a/modules/tools/magit/config.el +++ b/modules/tools/magit/config.el @@ -16,10 +16,9 @@ available.") (def-package! magit :commands magit-file-delete + :defer-incrementally (dash f s with-editor git-commit package magit) :init (setq magit-auto-revert-mode nil) ; we already use `global-auto-revert-mode' - (doom-load-packages-incrementally - '(dash f s with-editor git-commit package magit)) :config (setq magit-completing-read-function (if (featurep! :completion ivy)