From efecb5172c2ea84bc986087030dc09dff59c67c4 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 15 Mar 2020 02:44:46 +0000 Subject: [PATCH] chore(startup): Make various modules more lazy-loaded This should improve startup speed a little bit. --- core/siren-core-modules.el | 4 +++- modules/editor/siren-folding.el | 7 ++----- modules/languages/siren-golang.el | 14 +++++++------ modules/languages/siren-groovy.el | 1 + modules/languages/siren-ruby.el | 6 +++--- modules/languages/siren-text-mode.el | 1 + modules/languages/siren-typescript.el | 13 +++++------- modules/languages/siren-xml.el | 1 + modules/linting/siren-prettier-js.el | 1 + modules/lsp/siren-company-lsp.el | 2 +- modules/lsp/siren-helm-lsp.el | 3 --- modules/lsp/siren-lsp-ui.el | 3 +-- modules/lsp/siren-lsp.el | 3 +-- modules/org-mode/siren-htmlize.el | 3 ++- modules/projects/siren-treemacs.el | 22 ++++++++++++--------- modules/text-editing/siren-string-edit.el | 2 +- modules/text-editing/siren-toggle-quotes.el | 3 ++- modules/text-editing/siren-yasnippet.el | 3 ++- modules/tools/siren-helm-make.el | 1 + modules/version-control/siren-forge.el | 1 + modules/windows/siren-resize-window.el | 1 - modules/writing/siren-writeroom.el | 5 +---- 22 files changed, 51 insertions(+), 49 deletions(-) diff --git a/core/siren-core-modules.el b/core/siren-core-modules.el index b0c6838..d4ef965 100644 --- a/core/siren-core-modules.el +++ b/core/siren-core-modules.el @@ -125,11 +125,12 @@ (require 'siren-helm-make) (require 'siren-kubernetes) -;; Writing +;; ;; Writing (require 'siren-writeroom) ;; Languages (require 'siren-prog-mode) +(require 'siren-applescript) (require 'siren-coffee) (require 'siren-conf) (require 'siren-css) @@ -146,6 +147,7 @@ (require 'siren-js) (require 'siren-json) (require 'siren-jsx) +(require 'siren-lisp) (require 'siren-lua) (require 'siren-makefile) (require 'siren-markdown) diff --git a/modules/editor/siren-folding.el b/modules/editor/siren-folding.el index 24169b2..e63fb41 100644 --- a/modules/editor/siren-folding.el +++ b/modules/editor/siren-folding.el @@ -8,7 +8,6 @@ (use-package hideshow :straight (:type built-in) - :demand :bind ("C-=" . siren-folding-toggle-selective-display) @@ -19,8 +18,7 @@ "Activate or deactivate code folding. Optional ARG is passed directly to mode toggle function." (hs-minor-mode (or arg t)) - (hideshowvis-minor-mode (or arg t))) - + (if window-system (hideshowvis-minor-mode (or arg t)))) (defun siren-folding-toggle (column) "Toggle hiding/showing blocks via hs-mode. @@ -43,8 +41,7 @@ Borrowed from: http://www.emacswiki.org/emacs/HideShow" (1+ (current-column))))))) (use-package hideshowvis - :demand - :after hideshow) + :defer t) (provide 'siren-folding) ;;; siren-folding.el ends here diff --git a/modules/languages/siren-golang.el b/modules/languages/siren-golang.el index fd594ae..efbabcf 100644 --- a/modules/languages/siren-golang.el +++ b/modules/languages/siren-golang.el @@ -37,6 +37,8 @@ (setq tab-width 4) + (add-hook 'before-save-hook #'gofmt-before-save 0 t) + (highlight-symbol-mode -1) (company-mode +1) (lsp) @@ -46,8 +48,6 @@ :config (message "loading go-mode") - (add-hook 'before-save-hook #'gofmt-before-save) - (when (memq window-system '(mac ns)) (exec-path-from-shell-copy-env "GOPATH")) @@ -57,10 +57,11 @@ (add-to-list 'completion-ignored-extensions ".test")) (use-package go-dlv - :commands dlv dlv-current-func) + :defer t) (use-package gotest - :after go-mode + :defer t + :after (go-mode) :bind (:map go-mode-map ("C-c , a" . go-test-current-project) ("C-c , v" . go-test-current-file) @@ -74,7 +75,8 @@ (go-test-verbose t)) (use-package go-projectile - :after go-mode + :defer t + :after (go-mode) :hook (go-mode . siren-go-projectile-setup) :init @@ -87,7 +89,7 @@ (go-mode . flycheck-golangci-lint-setup)) (use-package go-playground - :commands go-playground) + :defer t) (provide 'siren-golang) ;;; siren-golang.el ends here diff --git a/modules/languages/siren-groovy.el b/modules/languages/siren-groovy.el index 520ca98..c23ac52 100644 --- a/modules/languages/siren-groovy.el +++ b/modules/languages/siren-groovy.el @@ -7,6 +7,7 @@ ;;; Code: (use-package groovy-mode + :mode "\\.groovy\\'" :hook (groovy-mode . siren-groovy-mode-setup) diff --git a/modules/languages/siren-ruby.el b/modules/languages/siren-ruby.el index d23ef28..0e50a97 100644 --- a/modules/languages/siren-ruby.el +++ b/modules/languages/siren-ruby.el @@ -103,8 +103,8 @@ :hook (ruby-mode . robe-mode) :init - (eval-after-load 'company - '(push 'company-robe company-backends)) + (with-eval-after-load 'company + (push 'company-robe company-backends)) :config ;; Unbind keys used by siren-expand-region module. @@ -140,7 +140,7 @@ ("C-c . D" . rubocop-autocorrect-directory))) (use-package rubocopfmt - :commands (rubocopfmt rubocopfmt-mode) + :defer t :bind (:map ruby-mode-map ("C-c C-f" . rubocopfmt)) :hook diff --git a/modules/languages/siren-text-mode.el b/modules/languages/siren-text-mode.el index 4bb4396..2df9df7 100644 --- a/modules/languages/siren-text-mode.el +++ b/modules/languages/siren-text-mode.el @@ -8,6 +8,7 @@ (use-package text-mode :straight (:type built-in) + :defer t :hook (text-mode . siren-text-mode-setup) :init (defun siren-text-mode-setup () diff --git a/modules/languages/siren-typescript.el b/modules/languages/siren-typescript.el index e529d7c..d96cc64 100644 --- a/modules/languages/siren-typescript.el +++ b/modules/languages/siren-typescript.el @@ -14,6 +14,8 @@ (require 'siren-web-mode) (use-package typescript-mode + :defer t + :mode "\\.ts\\'" :hook (typescript-mode . siren-typescript-mode-setup) @@ -40,9 +42,8 @@ :init (add-to-list 'auto-mode-alist '("\\.tsx\\'" . web-mode)) - (eval-after-load 'flycheck - '(progn - (flycheck-add-mode 'typescript-tslint 'web-mode))) + (with-eval-after-load 'flycheck + (flycheck-add-mode 'typescript-tslint 'web-mode)) (defun siren-tide-web-mode-setup () (when (string-equal "tsx" (file-name-extension buffer-file-name)) @@ -59,11 +60,7 @@ (flycheck-mode +1) (eldoc-mode +1) (tide-hl-identifier-mode +1) - (company-mode +1)) - - :config - ;; (add-hook 'before-save-hook #'tide-format-before-save) - ) + (company-mode +1))) (provide 'siren-typescript) ;;; siren-typescript.el ends here diff --git a/modules/languages/siren-xml.el b/modules/languages/siren-xml.el index d2fd4df..b71c94e 100644 --- a/modules/languages/siren-xml.el +++ b/modules/languages/siren-xml.el @@ -11,6 +11,7 @@ (use-package nxml-mode :straight (:type built-in) + :defer t :hook (nxml-mode . siren-xml-setup) :custom diff --git a/modules/linting/siren-prettier-js.el b/modules/linting/siren-prettier-js.el index 453062a..9a6733d 100644 --- a/modules/linting/siren-prettier-js.el +++ b/modules/linting/siren-prettier-js.el @@ -7,6 +7,7 @@ ;;; Code: (use-package prettier-js + :defer t :hook (prettier-js-mode . siren-prettier-js-mode-setup) :init diff --git a/modules/lsp/siren-company-lsp.el b/modules/lsp/siren-company-lsp.el index c4d873c..eafdd8a 100644 --- a/modules/lsp/siren-company-lsp.el +++ b/modules/lsp/siren-company-lsp.el @@ -10,7 +10,7 @@ (require 'siren-lsp) (use-package company-lsp - :commands company-lsp) + :defer t) (provide 'siren-company-lsp) ;;; siren-company-lsp.el ends here diff --git a/modules/lsp/siren-helm-lsp.el b/modules/lsp/siren-helm-lsp.el index ea3c0b6..d8f1743 100644 --- a/modules/lsp/siren-helm-lsp.el +++ b/modules/lsp/siren-helm-lsp.el @@ -10,9 +10,6 @@ (require 'siren-lsp) (use-package helm-lsp - :commands - helm-lsp-workspace-symbol - helm-lsp-global-workspace-symbol :bind ("C-c C-'" . helm-lsp-workspace-symbol)) diff --git a/modules/lsp/siren-lsp-ui.el b/modules/lsp/siren-lsp-ui.el index d03c93a..7c088a1 100644 --- a/modules/lsp/siren-lsp-ui.el +++ b/modules/lsp/siren-lsp-ui.el @@ -9,8 +9,7 @@ (require 'siren-lsp) (use-package lsp-ui - :commands lsp-ui-mode - + :defer t :bind (:map lsp-ui-mode-map ("C-c C-d" . lsp-ui-doc-show) ("M-?" . lsp-ui-peek-find-references) diff --git a/modules/lsp/siren-lsp.el b/modules/lsp/siren-lsp.el index b8ccbe1..eefc806 100644 --- a/modules/lsp/siren-lsp.el +++ b/modules/lsp/siren-lsp.el @@ -7,8 +7,7 @@ ;;; Code: (use-package lsp-mode - :commands lsp - + :defer t :bind (:map lsp-mode-map ("C-c C-." . lsp-rename)) diff --git a/modules/org-mode/siren-htmlize.el b/modules/org-mode/siren-htmlize.el index 620f44c..b78f370 100644 --- a/modules/org-mode/siren-htmlize.el +++ b/modules/org-mode/siren-htmlize.el @@ -6,7 +6,8 @@ ;;; Code: -(use-package htmlize) +(use-package htmlize + :defer t) (provide 'siren-htmlize) ;;; siren-htmlize.el ends here diff --git a/modules/projects/siren-treemacs.el b/modules/projects/siren-treemacs.el index 8b42495..cac0bc3 100644 --- a/modules/projects/siren-treemacs.el +++ b/modules/projects/siren-treemacs.el @@ -6,15 +6,12 @@ ;;; Code: -(require 'siren-dired) (require 'siren-lsp) (require 'siren-magit) (require 'siren-persp-mode) (require 'siren-projectile) (use-package treemacs - :demand - :bind ("C-x C-p" . treemacs) ("C-x p" . treemacs-select-window) @@ -34,6 +31,15 @@ (treemacs-width 40) :config + (with-eval-after-load 'projectile + (require 'treemacs-projectile)) + (with-eval-after-load 'persp-mode + (require 'treemacs-persp)) + (with-eval-after-load 'magit + (require 'treemacs-magit)) + (with-eval-after-load 'lsp-mode + (require 'lsp-treemacs)) + (treemacs-follow-mode t) (treemacs-filewatch-mode t) @@ -47,20 +53,18 @@ 'file-node-closed #'treemacs-visit-node-in-most-recently-used-window)) (use-package treemacs-projectile - :demand - :after (treemacs projectile) + :defer t :custom (treemacs-header-function #'treemacs-projectile-create-header)) (use-package treemacs-persp - :demand - :after treemacs persp-mode) + :defer t) (use-package treemacs-magit - :demand - :after treemacs magit) + :defer t) (use-package lsp-treemacs + :defer t :config (lsp-treemacs-sync-mode 1) (setq lsp-metals-treeview-show-when-views-received t)) diff --git a/modules/text-editing/siren-string-edit.el b/modules/text-editing/siren-string-edit.el index 482a183..4a62edc 100644 --- a/modules/text-editing/siren-string-edit.el +++ b/modules/text-editing/siren-string-edit.el @@ -7,7 +7,7 @@ ;;; Code: (use-package string-edit - :commands (string-edit-at-point)) + :defer t) (provide 'siren-string-edit) ;;; siren-string-edit.el ends here diff --git a/modules/text-editing/siren-toggle-quotes.el b/modules/text-editing/siren-toggle-quotes.el index cd3cc56..3bc1743 100644 --- a/modules/text-editing/siren-toggle-quotes.el +++ b/modules/text-editing/siren-toggle-quotes.el @@ -7,7 +7,8 @@ ;;; Code: (use-package toggle-quotes - :bind (("C-'" . toggle-quotes))) + :bind + ("C-'" . toggle-quotes)) (provide 'siren-toggle-quotes) ;;; siren-toggle-quotes.el ends here diff --git a/modules/text-editing/siren-yasnippet.el b/modules/text-editing/siren-yasnippet.el index 25fb449..f6d0035 100644 --- a/modules/text-editing/siren-yasnippet.el +++ b/modules/text-editing/siren-yasnippet.el @@ -6,7 +6,8 @@ ;;; Code: -(use-package yasnippet-snippets) +(use-package yasnippet-snippets + :defer t) (use-package yasnippet :hook (emacs-startup . yas-global-mode) diff --git a/modules/tools/siren-helm-make.el b/modules/tools/siren-helm-make.el index 606b30f..38f4c26 100644 --- a/modules/tools/siren-helm-make.el +++ b/modules/tools/siren-helm-make.el @@ -9,6 +9,7 @@ (require 'siren-helm) (use-package helm-make + :defer t :bind (:map helm-command-map ("m" . helm-make-projectile)) diff --git a/modules/version-control/siren-forge.el b/modules/version-control/siren-forge.el index 53d1fee..237db8a 100644 --- a/modules/version-control/siren-forge.el +++ b/modules/version-control/siren-forge.el @@ -9,6 +9,7 @@ (require 'siren-magit) (use-package forge + :defer t :after magit) (provide 'siren-forge) diff --git a/modules/windows/siren-resize-window.el b/modules/windows/siren-resize-window.el index 54f5223..7968bba 100644 --- a/modules/windows/siren-resize-window.el +++ b/modules/windows/siren-resize-window.el @@ -7,7 +7,6 @@ ;;; Code: (use-package resize-window - :commands resize-window :bind ("C-;" . resize-window)) diff --git a/modules/writing/siren-writeroom.el b/modules/writing/siren-writeroom.el index 7cce335..955e5c3 100644 --- a/modules/writing/siren-writeroom.el +++ b/modules/writing/siren-writeroom.el @@ -7,10 +7,7 @@ ;;; Code: (use-package writeroom-mode - :commands - writeroom-mode - global-writeroom-mode - + :defer t :bind (:map writeroom-mode-map ("C-M-<" . writeroom-decrease-width)