diff --git a/core/core-editor.el b/core/core-editor.el index 3e2fcbbcc..67ad482d2 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -150,7 +150,7 @@ with functions that require it (like modeline segments)." ;; Keep track of recently opened files (def-package! recentf - :init (add-hook 'doom-init-hook #'recentf-mode) + :hook (doom-init . recentf-mode) :config (setq recentf-save-file (concat doom-etc-dir "recentf") recentf-max-menu-items 0 @@ -171,7 +171,6 @@ with functions that require it (like modeline segments)." ;; Handles whitespace (tabs/spaces) settings externally. This way projects can ;; specify their own formatting rules. (def-package! editorconfig - :demand t :init (def-setting! :editorconfig (action value) ":add or :remove an entry in `editorconfig-indentation-alist'." @@ -230,17 +229,16 @@ extension, try to guess one." ;; Auto-close delimiters and blocks as you type (def-package! smartparens - :demand t :config + (add-hook 'doom-init-hook #'smartparens-global-mode) + (require 'smartparens-config) + (setq sp-autowrap-region nil ; let evil-surround handle this sp-highlight-pair-overlay nil sp-cancel-autoskip-on-backward-movement nil sp-show-pair-delay 0 sp-max-pair-length 3) - (add-hook 'doom-init-hook #'smartparens-global-mode) - (require 'smartparens-config) - ;; disable smartparens in evil-mode's replace state (they conflict) (add-hook 'evil-replace-state-entry-hook #'turn-off-smartparens-mode) (add-hook 'evil-replace-state-exit-hook #'turn-on-smartparens-mode) @@ -250,10 +248,8 @@ extension, try to guess one." ;; Branching undo (def-package! undo-tree - :demand t :config - (global-undo-tree-mode +1) - + (add-hook 'doom-init-hook #'global-undo-tree-mode) ;; persistent undo history is known to cause undo history corruption, which ;; can be very destructive! So disable it! (setq undo-tree-auto-save-history nil diff --git a/core/core-keybinds.el b/core/core-keybinds.el index b2f31fe6f..ee3cd6031 100644 --- a/core/core-keybinds.el +++ b/core/core-keybinds.el @@ -24,7 +24,6 @@ ;; (def-package! which-key - :demand t :config (setq which-key-sort-order #'which-key-prefix-then-key-order which-key-sort-uppercase-first nil @@ -38,7 +37,6 @@ (def-package! hydra - :demand t :init ;; In case I later need to wrap defhydra in any special functionality. (defalias 'def-hydra! 'defhydra) diff --git a/core/core-packages.el b/core/core-packages.el index fcb5bcb90..d283d5641 100644 --- a/core/core-packages.el +++ b/core/core-packages.el @@ -109,8 +109,6 @@ base by `doom!' and for calculating how many packages exist.") "gnutls-cli -p %p %h" "openssl s_client -connect %h:%p -no_ssl2 -no_ssl3 -ign_eof") - use-package-always-defer t - use-package-always-ensure nil use-package-verbose doom-debug-mode use-package-minimum-reported-time (if doom-debug-mode 0 0.1) diff --git a/core/core-popups.el b/core/core-popups.el index d6b1ded03..ff243595c 100644 --- a/core/core-popups.el +++ b/core/core-popups.el @@ -88,7 +88,6 @@ recognized by DOOM's popup system. They are: ;; (def-package! shackle - :demand t :init (setq shackle-default-alignment 'below shackle-default-size 8 diff --git a/core/core-projects.el b/core/core-projects.el index f9eee1431..01e8e88f4 100644 --- a/core/core-projects.el +++ b/core/core-projects.el @@ -5,7 +5,6 @@ state are passed in.") (def-package! projectile - :demand t :init (setq projectile-cache-file (concat doom-cache-dir "projectile.cache") projectile-enable-caching (not noninteractive) diff --git a/core/core-ui.el b/core/core-ui.el index 44530d20d..d068b2a27 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -296,7 +296,7 @@ local value, whether or not it's permanent-local. Therefore, we cycle ;; Highlights the current line (def-package! hl-line ; built-in - :init (add-hook! (prog-mode text-mode conf-mode) #'hl-line-mode) + :hook ((prog-mode text-mode conf-mode) . hl-line-mode) :config ;; I don't need hl-line showing in other windows. This also offers a small ;; speed boost when buffer is displayed in multiple windows. diff --git a/modules/app/email/config.el b/modules/app/email/config.el index 59420770d..e8213c279 100644 --- a/modules/app/email/config.el +++ b/modules/app/email/config.el @@ -263,8 +263,7 @@ default/fallback account." (def-package! org-mu4e - :commands org-mu4e-compose-org-mode - :init (add-hook 'mu4e-compose-mode-hook #'org-mu4e-compose-org-mode) + :hook (mu4e-compose-mode . org-mu4e-compose-org-mode) :config (setq org-mu4e-link-query-in-headers-mode nil org-mu4e-convert-to-html t) diff --git a/modules/app/irc/config.el b/modules/app/irc/config.el index f5db75d61..c142507b8 100644 --- a/modules/app/irc/config.el +++ b/modules/app/irc/config.el @@ -110,8 +110,7 @@ playback.") (def-package! circe-color-nicks - :commands enable-circe-color-nicks - :init (add-hook 'circe-channel-mode-hook 'enable-circe-color-nicks) + :hook (circe-channel-mode . enable-circe-color-nicks) :config (setq circe-color-nicks-min-constrast-ratio 4.5 circe-color-nicks-everywhere t)) @@ -202,5 +201,4 @@ Courtesy of esh-mode.el" (def-package! lui-autopaste - :commands enable-lui-autopaste - :init (add-hook 'circe-channel-mode-hook 'enable-lui-autopaste)) + :hook (circe-channel-mode . enable-lui-autopaste)) diff --git a/modules/completion/helm/config.el b/modules/completion/helm/config.el index ba315c5d5..33890f1b1 100644 --- a/modules/completion/helm/config.el +++ b/modules/completion/helm/config.el @@ -11,7 +11,6 @@ ;; (def-package! helm - :demand t :init (setq helm-quick-update t ;; Speedier without fuzzy matching @@ -77,15 +76,18 @@ (def-package! helm-locate + :defer t :init (defvar helm-generic-files-map (make-sparse-keymap)) :config (set-keymap-parent helm-generic-files-map helm-map)) (def-package! helm-bookmark + :commands helm-bookmark :config (setq-default helm-bookmark-show-location t)) (def-package! helm-files + :defer t :config (setq helm-boring-file-regexp-list (append (list "\\.projects$" "\\.DS_Store$") @@ -93,6 +95,7 @@ (def-package! helm-ag + :defer t :config (map! :map helm-ag-edit-map [remap doom/kill-this-buffer] #'helm-ag--edit-abort diff --git a/modules/completion/ido/config.el b/modules/completion/ido/config.el index ea0bd3bca..5327920d3 100644 --- a/modules/completion/ido/config.el +++ b/modules/completion/ido/config.el @@ -22,11 +22,18 @@ (ido-mode 1) (ido-everywhere 1) (require 'ido-ubiquitous) + (ido-ubiquitous-mode 1) (defun +ido|init () (require 'ido-vertical-mode) + (ido-vertical-mode 1) + (require 'flx-ido) + (flx-ido-mode +1) + (require 'crm-custom) + (crm-custom-mode +1) + (map! :map (ido-common-completion-map ido-completion-map ido-file-completion-map) "C-n" #'ido-next-match "C-p" #'ido-prev-match @@ -55,12 +62,3 @@ (insert "~/") (call-interactively #'self-insert-command))))) (add-hook 'ido-setup-hook #'+ido|setup-home-keybind)) - - -(def-package! ido-ubiquitous :config (ido-ubiquitous-mode 1)) - -(def-package! ido-vertical-mode :config (ido-vertical-mode 1)) - -(def-package! flx-ido :config (flx-ido-mode +1)) - -(def-package! crm-custom :config (crm-custom-mode +1)) diff --git a/modules/completion/ivy/config.el b/modules/completion/ivy/config.el index 7c0bbe755..34cb0e50f 100644 --- a/modules/completion/ivy/config.el +++ b/modules/completion/ivy/config.el @@ -24,7 +24,6 @@ immediately runs it on the current candidate (ending the ivy session)." ;; (def-package! ivy - :demand t :init (add-hook 'doom-post-init-hook #'ivy-mode) :config @@ -83,7 +82,7 @@ immediately runs it on the current candidate (ending the ivy session)." (def-package! counsel - :after ivy + :requires ivy :config (require 'counsel-projectile) (setq counsel-find-file-ignore-regexp "\\(?:^[#.]\\)\\|\\(?:[#~]$\\)\\|\\(?:^Icon?\\)") diff --git a/modules/feature/evil/config.el b/modules/feature/evil/config.el index 76025d596..b958149ab 100644 --- a/modules/feature/evil/config.el +++ b/modules/feature/evil/config.el @@ -21,7 +21,6 @@ (autoload 'goto-last-change-reverse "goto-chg") (def-package! evil - :demand t :init (setq evil-want-C-u-scroll t evil-want-visual-char-semi-exclusive t diff --git a/modules/feature/version-control/config.el b/modules/feature/version-control/config.el index d99b54b4f..f5e7e0a1b 100644 --- a/modules/feature/version-control/config.el +++ b/modules/feature/version-control/config.el @@ -20,8 +20,7 @@ (set! :evil-state 'vc-git-log-view-mode 'normal)) (def-package! smerge-mode - :init - (add-hook 'find-file-hook #'+vcs|enable-smerge-mode-maybe) + :hook (find-file . +vcs|enable-smerge-mode-maybe) :config (when (version< emacs-version "26") (defalias #'smerge-keep-upper #'smerge-keep-mine) diff --git a/modules/feature/workspaces/config.el b/modules/feature/workspaces/config.el index 759b7406b..1eb1840de 100644 --- a/modules/feature/workspaces/config.el +++ b/modules/feature/workspaces/config.el @@ -22,7 +22,6 @@ renamed.") ;; (def-package! persp-mode - :demand t :config (setq persp-autokill-buffer-on-remove 'kill-weak persp-nil-name "nil" diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index 4a8e6369b..dcfb950d6 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -105,28 +105,24 @@ compilation database is present in the project.") (def-package! modern-cpp-font-lock - :commands modern-c++-font-lock-mode - :init (add-hook 'c++-mode-hook #'modern-c++-font-lock-mode)) + :hook (c++-mode . modern-c++-font-lock-mode)) (def-package! irony :after cc-mode :commands irony-install-server - :preface - (setq irony-server-install-prefix (concat doom-etc-dir "irony-server/")) - :init - (add-hook! (c-mode c++-mode objc-mode) #'irony-mode) + :preface (setq irony-server-install-prefix (concat doom-etc-dir "irony-server/")) + :hook ((c-mode c++-mode objc-mode) . irony-mode) :config (unless (file-directory-p irony-server-install-prefix) (warn "irony-mode: server isn't installed; run M-x irony-install-server")) - ;; Initialize compilation database, if present. Otherwise, fall back on ;; `+cc-compiler-options'. (add-hook 'irony-mode-hook #'+cc|irony-init-compile-options)) (def-package! irony-eldoc :after irony - :config (add-hook 'irony-mode-hook #'irony-eldoc)) + :hook (irony-mode . irony-eldoc)) (def-package! flycheck-irony :when (featurep! :feature syntax-checker) @@ -157,8 +153,7 @@ compilation database is present in the project.") (def-package! opencl-mode :mode "\\.cl$") (def-package! demangle-mode - :commands demangle-mode - :init (add-hook 'llvm-mode-hook #'demangle-mode)) + :hook llvm-mode) (def-package! glsl-mode :mode "\\.glsl$" diff --git a/modules/lang/elm/config.el b/modules/lang/elm/config.el index e8537e043..f205c9b45 100644 --- a/modules/lang/elm/config.el +++ b/modules/lang/elm/config.el @@ -9,7 +9,6 @@ (def-package! flycheck-elm - :after elm-mode - :config - (add-hook 'flycheck-mode-hook #'flycheck-elm-setup)) + :after (:all flycheck elm-mode) + :hook (flycheck-mode . flycheck-elm-setup)) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 7cdf28216..f602a494b 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -72,6 +72,7 @@ (def-package! slime + :defer t :config (setq inferior-lisp-program "clisp") (require 'slime-fuzzy)) diff --git a/modules/lang/go/config.el b/modules/lang/go/config.el index e2d3f37df..2cb8222a9 100644 --- a/modules/lang/go/config.el +++ b/modules/lang/go/config.el @@ -65,9 +65,7 @@ (def-package! go-eldoc - :after go-mode - :commands go-eldoc-setup - :config (add-hook 'go-mode-hook #'go-eldoc-setup)) + :hook (go-mode . go-eldoc-setup)) (def-package! go-guru diff --git a/modules/lang/haskell/+intero.el b/modules/lang/haskell/+intero.el index 5adb63d25..2586df6a8 100644 --- a/modules/lang/haskell/+intero.el +++ b/modules/lang/haskell/+intero.el @@ -1,9 +1,7 @@ ;;; lang/haskell/+intero.el -*- lexical-binding: t; -*- (def-package! intero - :commands intero-mode - :init - (add-hook 'haskell-mode-hook #'intero-mode) + :hook (haskell-mode . intero-mode) :config (unless (executable-find "stack") (warn "haskell-mode: couldn't find stack, disabling intero") @@ -16,6 +14,4 @@ (def-package! hindent - :commands hindent-mode - :init - (add-hook 'haskell-mode-hook #'hindent-mode)) + :hook (haskell-mode . hindent-mode)) diff --git a/modules/lang/java/+eclim.el b/modules/lang/java/+eclim.el index 3e9c97dc9..1113e387a 100644 --- a/modules/lang/java/+eclim.el +++ b/modules/lang/java/+eclim.el @@ -3,8 +3,7 @@ ;; NOTE This submodule is incomplete (def-package! eclim - :init - (add-hook 'java-mode-hook #'eclim-mode) + :hook (java-mode . eclim-mode) :config (set! :jump 'java-mode :definition #'eclim-java-find-declaration @@ -53,6 +52,6 @@ (def-package! company-emacs-eclim :when (featurep! :completion company) - :after java + :after java-mode :config (set! :company-backend 'java-mode '(company-emacs-eclim))) diff --git a/modules/lang/java/+meghanada.el b/modules/lang/java/+meghanada.el index 1c78e7ba5..63f994c91 100644 --- a/modules/lang/java/+meghanada.el +++ b/modules/lang/java/+meghanada.el @@ -1,9 +1,7 @@ ;;; lang/java/+meghanada.el -*- lexical-binding: t; -*- (def-package! meghanada - :commands meghanada-mode - :init - (add-hook! 'java-mode-hook #'(meghanada-mode rainbow-delimiters-mode)) + :hook (java-mode . meghanada-mode) :config (setq meghanada-server-install-dir (concat doom-etc-dir "meghanada-server/") meghanada-use-company (featurep! :completion company) @@ -11,6 +9,8 @@ meghanada-use-eldoc t meghanada-use-auto-start t) + (add-hook 'java-mode-hook #'rainbow-delimiters-mode) + ;; Setup on first use (meghanada-install-server) (if (file-exists-p (meghanada--locate-server-jar)) diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index abcca44ab..edc8909ce 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -93,8 +93,7 @@ (def-package! tern - :commands tern-mode - :init (add-hook 'js2-mode-hook #'tern-mode) + :hook (js2-mode . tern-mode) :config (advice-add #'tern-project-dir :override #'doom-project-root)) diff --git a/modules/lang/latex/config.el b/modules/lang/latex/config.el index c160305cb..75d10c658 100644 --- a/modules/lang/latex/config.el +++ b/modules/lang/latex/config.el @@ -67,6 +67,7 @@ (def-package! bibtex ; built-in + :defer t :config (setq bibtex-dialect 'biblatex bibtex-align-at-equal-sign t diff --git a/modules/lang/ledger/config.el b/modules/lang/ledger/config.el index f76966619..5db4e7c71 100644 --- a/modules/lang/ledger/config.el +++ b/modules/lang/ledger/config.el @@ -2,14 +2,12 @@ (def-package! ledger-mode :mode "\\.ledger$" - :commands ledger-mode :config (setq ledger-clear-whole-transactions 1)) (def-package! evil-ledger :when (featurep! :feature evil) - :after ledger-mode - :config (add-hook 'ledger-mode-hook #'evil-ledger-mode)) + :hook (ledger-mode . evil-ledger-mode)) (def-package! flycheck-ledger diff --git a/modules/lang/lua/config.el b/modules/lang/lua/config.el index dd5d423cb..7a9123342 100644 --- a/modules/lang/lua/config.el +++ b/modules/lang/lua/config.el @@ -3,12 +3,11 @@ (def-package! lua-mode :mode "\\.lua$" :interpreter "lua" - :init - (add-hook 'lua-mode-hook #'flycheck-mode) :config + (add-hook 'lua-mode-hook #'flycheck-mode) + (set! :electric 'lua-mode :words '("else" "end")) (set! :repl 'lua-mode #'+lua/repl) - ;; sp's lua-specific rules are obnoxious, so we disable them (setq sp-pairs (delete (assq 'lua-mode sp-pairs) sp-pairs)) @@ -23,8 +22,7 @@ (def-package! company-lua - :when (featurep! :completion company) - :after lua-mode + :after (:all company lua-mode) :config (set! :company-backend 'lua-mode '(company-lua company-yasnippet))) diff --git a/modules/lang/ocaml/config.el b/modules/lang/ocaml/config.el index e43eb4135..22067cffb 100644 --- a/modules/lang/ocaml/config.el +++ b/modules/lang/ocaml/config.el @@ -6,5 +6,4 @@ (def-package! merlin :after tuareg - :config - (add-hook 'tuareg-mode-hook #'merlin-mode)) + :hook (tuareg-mode . merlin-mode)) diff --git a/modules/lang/perl/config.el b/modules/lang/perl/config.el index e8cd654ca..b0b7dec3c 100644 --- a/modules/lang/perl/config.el +++ b/modules/lang/perl/config.el @@ -5,11 +5,10 @@ (add-hook 'perl-mode-hook #'flycheck-mode)) -(def-package! perl6-mode - :init (require 'perl6-detect)) +(def-package! perl6-detect) (def-package! flycheck-perl6 - :after perl6-mode :when (featurep! :feature syntax-checker) + :after perl6-mode :config (add-hook 'perl6-mode-hook #'flycheck-mode)) diff --git a/modules/lang/php/config.el b/modules/lang/php/config.el index 5bfe186af..33b9d3373 100644 --- a/modules/lang/php/config.el +++ b/modules/lang/php/config.el @@ -7,11 +7,11 @@ (def-package! php-mode - :mode ("\\.php[s345]?$" "\\.inc$") + :mode "\\.php[s345]?$" + :mode "\\.inc$" :interpreter "php" :config - (add-hook! 'php-mode-hook - #'(ac-php-core-eldoc-setup flycheck-mode)) + (add-hook! php-mode #'(ac-php-core-eldoc-setup flycheck-mode)) (setq php-template-compatibility nil) @@ -68,8 +68,7 @@ (def-package! php-refactor-mode - :commands php-refactor-mode - :init (add-hook 'php-mode-hook #'php-refactor-mode)) + :hook php-mode) (def-package! phpunit diff --git a/modules/lang/purescript/config.el b/modules/lang/purescript/config.el index d94eb44c9..e4cb6ea54 100644 --- a/modules/lang/purescript/config.el +++ b/modules/lang/purescript/config.el @@ -14,7 +14,5 @@ ;; (add-hook 'flycheck-mode-hook #'flycheck-purescript-setup)) (def-package! psc-ide - :after purescript-mode - :config - (add-hook 'purescript-mode-hook #'psc-ide-mode)) + :hook (purescript-mode . psc-ide-mode)) diff --git a/modules/lang/python/config.el b/modules/lang/python/config.el index b92eb752b..c931d5a03 100644 --- a/modules/lang/python/config.el +++ b/modules/lang/python/config.el @@ -73,17 +73,14 @@ environment variables." (def-package! anaconda-mode :after python + :hook python-mode :init - (add-hook 'python-mode-hook #'anaconda-mode) - (add-hook 'anaconda-mode-hook #'anaconda-eldoc-mode) (setq anaconda-mode-installation-directory (concat doom-etc-dir "anaconda/") anaconda-mode-eldoc-as-single-line t) - :config + (add-hook 'anaconda-mode-hook #'anaconda-eldoc-mode) (set! :popup "*anaconda-mode*" :size 10 :noselect t :autoclose t :autokill t) - (map! :map anaconda-mode-map :m "gd" #'anaconda-mode-find-definitions) - (advice-add #'anaconda-mode-doc-buffer :after #'doom*anaconda-mode-doc-buffer)) diff --git a/modules/lang/ruby/config.el b/modules/lang/ruby/config.el index 865d1ea37..9d2d83a26 100644 --- a/modules/lang/ruby/config.el +++ b/modules/lang/ruby/config.el @@ -12,11 +12,12 @@ ;; (def-package! ruby-mode - :mode ("\\.rb$" "\\.rake$" "\\.gemspec$" "\\.?pryrc$" - "/\\(Gem\\|Cap\\|Vagrant\\|Rake\\|Pod\\|Puppet\\|Berks\\)file$") + :mode "\\.rb$" + :mode "\\.rake$" + :mode "\\.gemspec$" + :mode "\\.\\(pry\\|irb\\)rc$" + :mode "/\\(Gem\\|Cap\\|Vagrant\\|Rake\\|Pod\\|Puppet\\|Berks\\)file$" :interpreter "ruby" - :init - (add-hook 'ruby-mode-hook #'flycheck-mode) :config (set! :company-backend 'ruby-mode '(company-dabbrev-code)) (set! :electric 'ruby-mode :words '("else" "end" "elseif")) @@ -24,6 +25,8 @@ ;; Don't interfere with my custom RET behavior (define-key ruby-mode-map [?\n] nil) + (add-hook 'ruby-mode-hook #'flycheck-mode) + ;; Version management with rbenv (defun +ruby|add-version-to-modeline () "Add version string to the major mode in the modeline." @@ -67,9 +70,7 @@ environment variables." ;; Highlight doc comments -(def-package! yard-mode - :commands yard-mode - :init (add-hook 'ruby-mode-hook #'yard-mode)) +(def-package! yard-mode :hook ruby-mode) (def-package! rspec-mode diff --git a/modules/lang/rust/config.el b/modules/lang/rust/config.el index 7afabf06e..bde7c4602 100644 --- a/modules/lang/rust/config.el +++ b/modules/lang/rust/config.el @@ -20,10 +20,10 @@ (def-package! racer :after rust-mode - :preface - :init - (add-hook! 'rust-mode-hook #'(racer-mode eldoc-mode flycheck-rust-setup)) + :hook (rust-mode . racer-mode) :config + (add-hook 'rust-mode-hook #'eldoc-mode) + (setq racer-cmd (or (executable-find "racer") (expand-file-name "racer/target/release/racer" +rust-src-dir)) racer-rust-src-path (or (getenv "RUST_SRC_PATH") @@ -44,5 +44,6 @@ (def-package! flycheck-rust :when (featurep! :feature syntax-checker) :after rust-mode + :hook (flycheck-mode . flycheck-rust-setup) :config (add-hook 'rust-mode-hook #'flycheck-mode)) diff --git a/modules/lang/scala/config.el b/modules/lang/scala/config.el index 89319c383..b656ebbf6 100644 --- a/modules/lang/scala/config.el +++ b/modules/lang/scala/config.el @@ -2,17 +2,18 @@ (def-package! scala-mode :mode "\\.s\\(cala\\|bt\\)$" - :config - (setq scala-indent:align-parameters t)) + :config (setq scala-indent:align-parameters t)) (def-package! sbt-mode :after scala-mode) (def-package! ensime - :after scala-mode - :commands (ensime ensime-mode ensime-scala-mode-hook) + :commands (ensime ensime-scala-mode-hook) + :hook (scala-mode . ensime-mode) :config + (add-hook 'ensime-mode-hook #'eldoc-mode) + (set! :company-backend 'scala-mode '(ensime-company company-yasnippet)) (setq ensime-startup-snapshot-notification nil @@ -21,9 +22,6 @@ ;; let DOOM handle company setup ensime-completion-style nil) - (add-hook 'scala-mode-hook #'ensime-mode) - (add-hook 'ensime-mode-hook #'eldoc-mode) - ;; Fix void-variable imenu-auto-rescan error caused by `ensime--setup-imenu' ;; trying to make imenu variables buffer local before imenu is loaded. (require 'imenu)) diff --git a/modules/lang/swift/config.el b/modules/lang/swift/config.el index 966c74f2e..9daae8f3a 100644 --- a/modules/lang/swift/config.el +++ b/modules/lang/swift/config.el @@ -4,9 +4,8 @@ (def-package! swift-mode :mode "\\.swift$" - :init - (add-hook 'swift-mode-hook #'flycheck-mode) :config + (add-hook 'swift-mode-hook #'flycheck-mode) (set! :repl 'swift-mode #'swift-mode-run-repl) ; TODO test this (push 'swift flycheck-checkers)) diff --git a/modules/lang/typescript/config.el b/modules/lang/typescript/config.el index 255357382..5c42d36e9 100644 --- a/modules/lang/typescript/config.el +++ b/modules/lang/typescript/config.el @@ -2,9 +2,9 @@ (def-package! typescript-mode :mode "\\.ts$" - :init - (add-hook 'typescript-mode-hook #'rainbow-delimiters-mode) :config + (add-hook 'typescript-mode-hook #'rainbow-delimiters-mode) + (set! :electric 'typescript-mode :chars '(?\} ?\)) :words '("||" "&&")) ;; TODO tide-jump-back diff --git a/modules/lang/web/+css.el b/modules/lang/web/+css.el index 181d1a5d8..14f6e344a 100644 --- a/modules/lang/web/+css.el +++ b/modules/lang/web/+css.el @@ -21,15 +21,14 @@ (def-package! counsel-css :when (featurep! :completion ivy) :commands (counsel-css counsel-css-imenu-setup) + :hook (css-mode . counsel-css-imenu-setup) :init - (add-hook 'css-mode-hook #'counsel-css-imenu-setup) (map! :map* (css-mode-map scss-mode-map less-css-mode-map) :localleader :n ";" #'counsel-css)) (def-package! rainbow-mode - :commands rainbow-mode - :init (add-hook! (css-mode sass-mode) #'rainbow-mode)) + :hook (css-mode sass-mode)) (def-package! css-mode diff --git a/modules/lang/web/+html.el b/modules/lang/web/+html.el index 8b66dd9e1..73ba50cf6 100644 --- a/modules/lang/web/+html.el +++ b/modules/lang/web/+html.el @@ -9,9 +9,8 @@ :mode "\\.mustache$" :mode "\\.tsx$" :mode "wp-content/themes/.+/.+\\.php$" - :init - (add-hook 'web-mode-hook #'turn-off-smartparens-mode) :config + (add-hook 'web-mode-hook #'turn-off-smartparens-mode) (set! :company-backend 'web-mode '(company-web-html company-yasnippet)) (setq web-mode-enable-html-entities-fontification t) diff --git a/modules/lang/web/config.el b/modules/lang/web/config.el index c31022e4c..391063ba1 100644 --- a/modules/lang/web/config.el +++ b/modules/lang/web/config.el @@ -16,9 +16,7 @@ (def-package! emmet-mode :commands emmet-mode :preface (defvar emmet-mode-keymap (make-sparse-keymap)) - :init - (add-hook! (css-mode web-mode html-mode haml-mode nxml-mode rjsx-mode) - 'emmet-mode) + :hook (css-mode web-mode html-mode haml-mode nxml-mode rjsx-mode) :config (setq emmet-move-cursor-between-quotes t) (map! :map emmet-mode-keymap diff --git a/modules/tools/password-store/config.el b/modules/tools/password-store/config.el index 9782e7dd0..28a69a17a 100644 --- a/modules/tools/password-store/config.el +++ b/modules/tools/password-store/config.el @@ -12,6 +12,7 @@ ;; (def-package! password-store + :defer t :config (setq password-store-password-length 12)) @@ -38,5 +39,4 @@ (if (require 'auth-store-pass nil t) (auth-source-pass-enable) (def-package! auth-password-store - :demand t :config (auth-pass-enable))) diff --git a/modules/ui/doom-modeline/config.el b/modules/ui/doom-modeline/config.el index 0bc4e9a93..584918fe9 100644 --- a/modules/ui/doom-modeline/config.el +++ b/modules/ui/doom-modeline/config.el @@ -1,7 +1,6 @@ ;;; ui/doom-modeline/config.el -*- lexical-binding: t; -*- (def-package! eldoc-eval - :demand t :config (defun +doom-modeline-eldoc (text) (concat (when (display-graphic-p) @@ -28,7 +27,7 @@ ;; anzu and evil-anzu expose current/total state that can be displayed in the ;; mode-line. (def-package! evil-anzu - :when (featurep 'evil) + :requires evil :init (add-transient-hook! #'evil-ex-start-search (require 'evil-anzu)) (add-transient-hook! #'evil-ex-start-word-search (require 'evil-anzu)) diff --git a/modules/ui/doom/config.el b/modules/ui/doom/config.el index 50ca45325..2493c8959 100644 --- a/modules/ui/doom/config.el +++ b/modules/ui/doom/config.el @@ -2,7 +2,6 @@ ;; (def-package! doom-themes - :demand t :config (set! :theme 'doom-one) @@ -32,26 +31,15 @@ (def-package! solaire-mode - :commands (solaire-mode turn-on-solaire-mode turn-off-solaire-mode) - :init - (add-hook 'after-change-major-mode-hook #'turn-on-solaire-mode) - (add-hook 'doom-popup-mode-hook #'turn-off-solaire-mode) + :hook (gist-mode twittering-mode mu4e-view-mode org-tree-slide-mode +regex-mode) + :hook (after-change-major-mode . turn-on-solaire-mode) + :hook (doom-popup-mode . turn-off-solaire-mode) + :hook (doom-init-ui . solaire-mode-swap-bg) :config (setq solaire-mode-real-buffer-fn #'doom-real-buffer-p) - (add-hook 'doom-init-ui-hook #'solaire-mode-swap-bg t) - ;; Prevent color glitches when reloading either DOOM or the theme - (defun +doom|reset-solaire-mode (&rest _) (solaire-mode-reset)) - (advice-add #'load-theme :after #'+doom|reset-solaire-mode) - (add-hook! '(doom-init-ui-hook doom-reload-hook) #'solaire-mode-reset) - - ;; Extra modes to activate doom-buffer-mode in - (add-hook! (gist-mode - twittering-mode - mu4e-view-mode - org-tree-slide-mode - +regex-mode) - #'solaire-mode)) + (advice-add #'load-theme :after #'solaire-mode-reset) + (add-hook! '(doom-init-ui-hook doom-reload-hook) #'solaire-mode-reset)) (after! hideshow diff --git a/modules/ui/evil-goggles/config.el b/modules/ui/evil-goggles/config.el index 77a99cd02..2a1b7a1eb 100644 --- a/modules/ui/evil-goggles/config.el +++ b/modules/ui/evil-goggles/config.el @@ -2,8 +2,7 @@ (def-package! evil-goggles :when (featurep! :feature evil) - :commands evil-goggles-mode + :hook (doom-post-init . evil-goggles-mode) :init (setq evil-goggles-duration 0.1 - evil-goggles-enable-delete nil) - (add-hook 'doom-post-init-hook #'evil-goggles-mode t)) + evil-goggles-enable-delete nil)) diff --git a/modules/ui/hl-todo/config.el b/modules/ui/hl-todo/config.el index 8321cfc90..a2a445f2b 100644 --- a/modules/ui/hl-todo/config.el +++ b/modules/ui/hl-todo/config.el @@ -1,8 +1,7 @@ ;;; ui/hl-todo/packages.el -*- lexical-binding: t; -*- (def-package! hl-todo - :commands hl-todo-mode - :init (add-hook 'prog-mode-hook #'hl-todo-mode) + :hook (prog-mode . hl-todo-mode) :config (setq hl-todo-keyword-faces `(("TODO" . ,(face-foreground 'warning)) diff --git a/modules/ui/tabbar/config.el b/modules/ui/tabbar/config.el index d225f1316..bb694c5c4 100644 --- a/modules/ui/tabbar/config.el +++ b/modules/ui/tabbar/config.el @@ -5,7 +5,6 @@ ;; find ivy (or helm) or even `buffer-menu' is better suited for this purpose. (def-package! tabbar - :demand t :config (setq tabbar-use-images nil) (tabbar-mode) diff --git a/modules/ui/vi-tilde-fringe/config.el b/modules/ui/vi-tilde-fringe/config.el index 3467a770d..170fa0099 100644 --- a/modules/ui/vi-tilde-fringe/config.el +++ b/modules/ui/vi-tilde-fringe/config.el @@ -3,8 +3,8 @@ ;; indicators for empty lines past EOF (def-package! vi-tilde-fringe :commands (global-vi-tilde-fringe-mode vi-tilde-fringe-mode) + :hook (doom-init-ui . global-vi-tilde-fringe-mode) :init - (add-hook 'doom-init-ui-hook #'global-vi-tilde-fringe-mode) :config (defun +vi-tilde-fringe|disable () (vi-tilde-fringe-mode -1)))