Skip to content

Commit 7104914

Browse files
committed
defer loading many packages to improve startup time
1 parent 21aaf14 commit 7104914

16 files changed

+74
-22
lines changed

config/mk-appearance.el

+2-3
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@
1313
(setq mouse-wheel-follow-mouse 't)
1414
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1)))
1515

16-
1716
(use-package doom-themes
1817
:config
1918
(load-theme 'doom-one t))
2019

2120
;; All The Icons
22-
(use-package all-the-icons)
23-
21+
(use-package all-the-icons
22+
:defer t)
2423

2524
(use-package doom-modeline
2625
:defer t

config/mk-editing.el

+15-3
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,35 @@
22
(winner-mode 1)
33
(add-hook 'before-save-hook 'delete-trailing-whitespace)
44

5-
(use-package which-key)
5+
(use-package which-key
6+
:defer t)
67

78
(use-package highlight-indentation
9+
:defer t
810
:hook
911
((yaml-mode . highlight-indentation-mode)
1012
(yaml-mode . highlight-indentation-current-column-mode)
1113
(docker-compose-mode . highlight-indentation-mode)
1214
(docker-compose-mode . highlight-indentation-current-column-mode)))
1315

1416
(use-package rainbow-mode
17+
:defer t
1518
:delight)
1619

1720
(use-package flycheck
21+
:defer t
1822
:init (global-flycheck-mode))
1923

2024
(use-package expand-region
25+
:defer t
2126
:commands er/expand-region)
2227

2328
(use-package wakatime-mode
29+
:defer t
2430
:init (global-wakatime-mode))
2531

2632
(use-package ace-window
33+
:defer t
2734
:init
2835
(setq aw-scope 'frame
2936
aw-ignore-on t
@@ -32,23 +39,28 @@
3239
aw-ignored-buffers '("*NeoTree*")))
3340

3441
(use-package smartparens
42+
:defer t
3543
:diminish smartparens-mode
3644
:config
3745
(progn
3846
(require 'smartparens-config)
3947
(setq smartparens-strict-mode t)
4048
(smartparens-global-mode 1)))
4149

42-
(use-package wgrep)
50+
(use-package wgrep
51+
:defer t)
4352

4453
(use-package symbol-overlay
54+
:defer t
4555
:general
4656
(:keymaps 'symbol-overlay-mode-map
4757
"r" 'symbol-overlay-rename))
4858

49-
(use-package dist-file-mode)
59+
(use-package dist-file-mode
60+
:defer t)
5061

5162
(use-package smart-jump
63+
:defer t
5264
:config
5365
(smart-jump-setup-default-registers))
5466

config/mk-evil.el

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
(define-key evil-normal-state-map (kbd ", w") 'evil-window-vsplit))
1919

2020
(use-package evil-collection
21+
:defer t
2122
:after evil
2223
:config (evil-collection-init))
2324

config/mk-git.el

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
(use-package magit
2+
:defer t
23
:init
34
(setq magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1)
45
(add-hook 'magit-mode-hook 'turn-on-magit-gitflow)
56
:config (setq magit-completing-read-function 'ivy-completing-read))
67

7-
(use-package magit-gitflow)
8+
(use-package magit-gitflow
9+
:defer t)
810

911
(use-package magit-todos
12+
:defer t
1013
:after magit
1114
:init
1215
(setq magit-todos-require-colon nil)
@@ -20,12 +23,13 @@
2023
:init (setq evil-magit-want-horizontal-movement nil))
2124

2225
(use-package diff-hl ; Show changes in fringe
23-
:ensure t
26+
:defer t
2427
:hook ((prog-mode . diff-hl-mode)
2528
;; (dired-mode . diff-hl-dired-mode)
2629
(magit-post-refresh . diff-hl-magit-post-refresh)))
2730

28-
(use-package git-timemachine)
31+
(use-package git-timemachine
32+
:defer t)
2933

3034
;; invalidate projectile cache upon some git events
3135
;; see https://emacs.stackexchange.com/questions/26266/projectile-and-magit-branch-checkout

config/mk-project.el

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
;;; Commentary:
22
;;; Code:
33
(use-package projectile
4+
:defer t
45
:config
56
(projectile-mode)
67
(setq projectile-project-search-path '("~/src/" "~/workspace/")
78
projectile-completion-system 'ivy
89
projectile-switch-project-action #'projectile-find-file-dwim
910
projectile-enable-caching t))
1011

11-
(use-package counsel-projectile)
12+
(use-package counsel-projectile
13+
:defer t)
1214

1315
(use-package perspective
14-
:init (persp-mode))
16+
:init (persp-mode)
17+
)
1518

1619
(use-package persp-projectile
1720
:after (perspective projectile)

config/mk-tools.el

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
;;; mk-tools --- some independent tools
22

3-
(use-package tomatinho)
3+
(use-package tomatinho
4+
:defer 2)
45

5-
(use-package org-pomodoro)
6+
(use-package org-pomodoro
7+
:defer 2)
68

79
(provide 'mk-tools)
810
;;; mk-tools ends here

init.el

+9-1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
(require 'mk-keybindings)
6868

6969
(use-package avy
70+
:defer t
7071
:commands (avy-goto-word-1))
7172

7273
(use-package ivy
@@ -77,24 +78,29 @@
7778
ivy-use-virtual-buffers t)
7879
(bind-key "C-c C-r" 'ivy-resume))
7980

80-
(use-package hydra)
81+
(use-package hydra
82+
:defer t)
8183

8284
(use-package ivy-hydra
85+
:defer t
8386
:after (ivy hydra))
8487

8588
(define-key ivy-minibuffer-map (kbd "C-o") 'hydra-ivy/body)
8689
(define-key ivy-minibuffer-map (kbd "<return>") 'ivy-alt-done)
8790

8891
(use-package prescient
92+
:defer t
8993
:config (prescient-persist-mode t))
9094
(use-package ivy-prescient
9195
:config (ivy-prescient-mode t))
9296

9397
(use-package ivy-xref
98+
:defer t
9499
:init (setq xref-show-xrefs-function #'ivy-xref-show-xrefs))
95100

96101
;; use ripgrep configured to avoid lines longer than arbitrary limit
97102
(use-package counsel
103+
:defer t
98104
:config
99105
(setq counsel-grep-base-command "rg -i -M 240 --no-heading --line-number --color never '%s' %s"
100106
counsel-rg-base-command "rg -S -M 240 --no-heading --line-number --color never %s ."))
@@ -109,13 +115,15 @@
109115
(require 'mk-editing)
110116

111117
(use-package eyebrowse ; Easy workspaces creation and switching
118+
:defer t
112119
:config
113120
(setq eyebrowse-mode-line-separator " "
114121
eyebrowse-new-workspace t)
115122
(eyebrowse-mode t))
116123

117124
;; NeoTree
118125
(use-package neotree
126+
:defer t
119127
:config
120128
(with-eval-after-load 'neotree (require 'evil-collection-neotree))
121129
:init

lang/mk-cucumber.el

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
(use-package feature-mode)
1+
(use-package feature-mode
2+
:defer t)
23

34
(provide 'mk-cucumber)

lang/mk-general.el

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
(use-package helpful
2+
:defer t
23
:bind (("C-h f" . helpful-callable)
34
("C-h v" . helpful-variable)
45
("C-h k" . helpful-key)))

lang/mk-lsp.el

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
(use-package lsp-mode :defer t)
22

33
(use-package lsp-ui
4+
:defer t
45
:hook (lsp-mode . lsp-ui-mode)
56
:config
67
(setq lsp-ui-sideline-enable nil
@@ -11,6 +12,7 @@
1112
(lsp-ui-peek-always-show t))
1213

1314
(use-package company-lsp
15+
:defer t
1416
:config (push 'company-lsp company-backends))
1517

1618
(provide 'mk-lsp)

lang/mk-php.el

+9-3
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,23 @@
5959
;; :load-path "~/src/composer.el")
6060

6161
(use-package phpactor
62-
:load-path "~/src/phpactor.el")
62+
:defer t
63+
;; :load-path "~/src/phpactor.el"
64+
)
6365

6466
(use-package company-phpactor ; :ensure nil
65-
;; :load-path "~/src/phpactor.el"
67+
:defer t
68+
;; :load-path "~/src/company-phpactor.el"
6669
)
6770

6871
(use-package php-cs-fixer :ensure nil
72+
:defer t
6973
:load-path "~/src/php-cs-fixer.el"
7074
:config (setq php-cs-fixer--enable nil))
7175

7276

7377
(use-package flycheck-phpstan
78+
:defer t
7479
:after (php-mode flycheck)
7580
:config (setq phpstan-executable "~/bin/phpstan"))
7681

@@ -139,7 +144,8 @@
139144
;;company-capf
140145
)))
141146

142-
(use-package geben)
147+
(use-package geben
148+
:defer t)
143149

144150
;; (defun counsel-phpactor (&optional initial-input)
145151
;; "Call the \"locate\" shell command.

lang/mk-react.el

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
(tide-hl-identifier-mode +1))
1010

1111
(use-package typescript-mode
12+
:defer t
1213
:config
1314
(setq typescript-indent-level 2)
1415
(add-hook 'typescript-mode #'subword-mode)
@@ -21,6 +22,7 @@
2122
)
2223

2324
(use-package tide
25+
:defer t
2426
:after (typescript-mode company flycheck)
2527
:hook ((typescript-mode . tide-setup)
2628
(typescript-mode . tide-hl-identifier-mode)

lang/mk-scala.el

+6-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
;;; Commentary:
33

44
;;; Code:
5-
(use-package ensime)
5+
(use-package ensime
6+
:defer t)
67

7-
(use-package sbt-mode)
8+
(use-package sbt-mode
9+
:defer t)
810

9-
(use-package scala-mode)
11+
(use-package scala-mode
12+
:defer t)
1013

1114
(provide 'mk-scala)
1215
;;; mk-scala ends here

lang/mk-web.el

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
;;; mk-web --- essentially web-mode
22

33
(use-package web-mode
4+
:defer t
45
:mode (("\\.html\\'" . web-mode)
56
("\\.html\\.twig\\'" . web-mode)
67
("\\.vue\\'" . web-mode)
@@ -44,7 +45,8 @@
4445
:defer t
4546
:after company)
4647

47-
(use-package restclient)
48+
(use-package restclient
49+
:defer t)
4850

4951
;; inspired from https://github.com/jerryhsieh/Emacs-config/blob/master/custom/web.el
5052
(defun my/web-html-setup()
@@ -71,6 +73,7 @@
7173
)
7274

7375
(use-package prettier-js
76+
:defer t
7477
:hook ((js2-mode . prettier-js-mode)
7578
(typescript-mode . prettier-js-mode)
7679
(css-mode . prettier-js-mode)
@@ -101,6 +104,7 @@
101104
(add-hook 'typescript-mode-hook #'setup-tide-mode)
102105

103106
(use-package tide
107+
:defer t
104108
:after (typescript-mode company flycheck)
105109
:hook ((typescript-mode . tide-setup)
106110
(typescript-mode . tide-hl-identifier-mode))

modes/mk-docker.el

+3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
(use-package dockerfile-mode
2+
:defer t
23
:mode (("Dockerfile" . dockerfile-mode)))
34

45
(use-package docker-compose-mode
6+
:defer t
57
:mode (("docker-compose.yml" . docker-compose-mode))
68
:init (flycheck-add-mode 'yaml-ruby 'docker-compose-mode))
79

810
(use-package groovy-mode
11+
:defer t
912
:mode (("Jenkinsfile" . groovy-mode)))
1013

1114
(provide 'mk-docker)

modes/mk-yaml.el

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
(use-package yaml-mode
2+
:defer t
23
:mode ((".yaml" . yaml-mode)
34
(".yml" . yaml-mode))
45
:init (setq yaml-indent-offset 4)

0 commit comments

Comments
 (0)