Minor refactors & reformatting

This commit is contained in:
Henrik Lissner 2020-12-01 13:51:48 -05:00
parent c517be8e69
commit affd076d53
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
5 changed files with 40 additions and 47 deletions

View file

@ -334,8 +334,8 @@ Some items are not supported by the `nsm.el' module."
comp-async-env-modifier-form ',(bound-and-true-p comp-async-env-modifier-form) comp-async-env-modifier-form ',(bound-and-true-p comp-async-env-modifier-form)
comp-deferred-compilation-black-list ',(bound-and-true-p comp-deferred-compilation-black-list)) comp-deferred-compilation-black-list ',(bound-and-true-p comp-deferred-compilation-black-list))
(with-eval-after-load 'undo-tree (with-eval-after-load 'undo-tree
;; undo-tree throws errors because `buffer-undo-tree' isn't ;; HACK `undo-tree' throws errors because `buffer-undo-tree'
;; correctly initialized ;; isn't correctly initialized
(setq-default buffer-undo-tree (make-undo-tree))) (setq-default buffer-undo-tree (make-undo-tree)))
(ignore-errors (ignore-errors
(delete-directory ,(expand-file-name "auto-save-list" doom-emacs-dir) 'parents))) (delete-directory ,(expand-file-name "auto-save-list" doom-emacs-dir) 'parents)))

View file

@ -236,8 +236,9 @@ list remains lean."
"Build the trampolines we need to prevent hanging." "Build the trampolines we need to prevent hanging."
(when (featurep 'comp) (when (featurep 'comp)
;; HACK The following list was obtained by running 'doom build', waiting for ;; HACK The following list was obtained by running 'doom build', waiting for
;; it to hang, then checking the eln-cache for trampolines. We simulate ;; it to hang, then checking the eln-cache for trampolines. We
;; running 'doom build' twice by compiling the trampolines then restarting. ;; simulate running 'doom build' twice by compiling the trampolines
;; then restarting.
(let (restart) (let (restart)
(dolist (f '(abort-recursive-edit (dolist (f '(abort-recursive-edit
describe-buffer-bindings describe-buffer-bindings
@ -258,7 +259,7 @@ list remains lean."
(unless (doom--find-eln-file (unless (doom--find-eln-file
(concat comp-native-version-dir "/" (concat comp-native-version-dir "/"
(comp-trampoline-filename f))) (comp-trampoline-filename f)))
(print! "Compiling trampoline for %s" f) (print! (info "Compiling trampoline for %s") f)
(comp-trampoline-compile f) (comp-trampoline-compile f)
(setq restart t))) (setq restart t)))
(when restart (when restart

View file

@ -91,7 +91,8 @@ possible."
delete-old-versions t ; clean up after itself delete-old-versions t ; clean up after itself
kept-old-versions 5 kept-old-versions 5
kept-new-versions 5 kept-new-versions 5
backup-directory-alist (list (cons "." (concat doom-cache-dir "backup/")))) backup-directory-alist (list (cons "." (concat doom-cache-dir "backup/")))
tramp-backup-directory-alist backup-directory-alist)
;; But turn on auto-save, so we have a fallback in case of crashes or lost data. ;; But turn on auto-save, so we have a fallback in case of crashes or lost data.
;; Use `recover-file' or `recover-session' to recover them. ;; Use `recover-file' or `recover-session' to recover them.
@ -102,6 +103,7 @@ possible."
auto-save-include-big-deletions t auto-save-include-big-deletions t
;; ...but have directories set up in case we use it. ;; ...but have directories set up in case we use it.
auto-save-list-file-prefix (concat doom-cache-dir "autosave/") auto-save-list-file-prefix (concat doom-cache-dir "autosave/")
tramp-auto-save-directory (concat doom-cache-dir "tramp-autosave/")
auto-save-file-name-transforms auto-save-file-name-transforms
(list (list "\\`/[^/]*:\\([^/]*/\\)*\\([^/]*\\)\\'" (list (list "\\`/[^/]*:\\([^/]*/\\)*\\([^/]*\\)\\'"
;; Prefix tramp autosaves to prevent conflicts with local ones ;; Prefix tramp autosaves to prevent conflicts with local ones
@ -542,8 +544,8 @@ files, so we replace calls to `pp' with the much faster `prin1'."
(add-to-list 'so-long-variable-overrides '(save-place-alist . nil)) (add-to-list 'so-long-variable-overrides '(save-place-alist . nil))
;; Text files could possibly be too long too ;; Text files could possibly be too long too
(add-to-list 'so-long-target-modes 'text-mode) (add-to-list 'so-long-target-modes 'text-mode)
;; But disable everything else that may be unnecessary/expensive for large ;; But disable everything else that may be unnecessary/expensive for large or
;; or wide buffers. ;; wide buffers.
(appendq! so-long-minor-modes (appendq! so-long-minor-modes
'(flycheck-mode '(flycheck-mode
flyspell-mode flyspell-mode
@ -559,20 +561,11 @@ files, so we replace calls to `pp' with the much faster `prin1'."
hl-fill-column-mode)) hl-fill-column-mode))
(defun doom-buffer-has-long-lines-p () (defun doom-buffer-has-long-lines-p ()
;; HACK Fix #2183: `so-long-detected-long-line-p' tries to parse comment ;; HACK Fix #2183: `so-long-detected-long-line-p' tries to parse comment
;; syntax, but in some buffers comment state isn't initialized, ;; syntax, but in some buffers comment state isn't initialized, leading
;; leading to a wrong-type-argument: stringp error. ;; to a wrong-type-argument: stringp error.
(unless (bound-and-true-p visual-line-mode) (unless (bound-and-true-p visual-line-mode)
(let ((so-long-skip-leading-comments (bound-and-true-p comment-use-syntax)) (let ((so-long-skip-leading-comments
;; HACK If visual-line-mode is on, then false positives are more (bound-and-true-p comment-use-syntax)))
;; likely, so up the threshold. More so in text-mode, since long
;; paragraphs are the norm.
(so-long-threshold
(if visual-line-mode
(* so-long-threshold
(if (derived-mode-p 'text-mode)
4
2))
so-long-threshold)))
(so-long-detected-long-line-p)))) (so-long-detected-long-line-p))))
(setq so-long-predicate #'doom-buffer-has-long-lines-p)) (setq so-long-predicate #'doom-buffer-has-long-lines-p))

View file

@ -125,6 +125,25 @@ unreadable. Returns the names of envvars that were changed."
(default-value 'shell-file-name))) (default-value 'shell-file-name)))
env))) env)))
(defun doom-run-hook-on (hook-var triggers)
"Configure HOOK-VAR to be invoked exactly once after init whenever any of the
TRIGGERS are invoked. Once HOOK-VAR gets triggered, it resets to nil.
HOOK-VAR is a quoted hook.
TRIGGERS is a list of quoted hooks and/or sharp-quoted functions."
(let ((fn (intern (format "%s-h" hook-var))))
(fset
fn (lambda (&rest _)
(when after-init-time
(run-hook-wrapped hook-var #'doom-try-run-hook)
(set hook-var nil))))
(put hook-var 'permanent-local t)
(dolist (on triggers)
(if (functionp on)
(advice-add on :before fn)
(add-hook on fn)))))
;; ;;
;;; Functional library ;;; Functional library
@ -487,25 +506,6 @@ advised)."
(put ',fn 'permanent-local-hook t) (put ',fn 'permanent-local-hook t)
(add-hook sym #',fn ,append)))))) (add-hook sym #',fn ,append))))))
(defmacro add-hook-trigger! (hook-var &rest targets)
"Configure HOOK-VAR to be invoked exactly once after init whenever any of the
TARGETS are invoked. Once HOOK-VAR gets triggered, it resets to nil.
HOOK-VAR is a quoted hook.
TARGETS is a list of quoted hooks and/or sharp-quoted functions."
`(let ((fn (intern (format "%s-h" ,hook-var))))
(fset
fn (lambda (&rest _)
(when after-init-time
(run-hook-wrapped ,hook-var #'doom-try-run-hook)
(set ,hook-var nil))))
(put ,hook-var 'permanent-local t)
(dolist (on (list ,@targets))
(if (functionp on)
(advice-add on :before fn)
(add-hook on fn)))))
(defmacro add-hook! (hooks &rest rest) (defmacro add-hook! (hooks &rest rest)
"A convenience macro for adding N functions to M hooks. "A convenience macro for adding N functions to M hooks.

View file

@ -374,7 +374,7 @@ config.el instead."
(defun doom-run-local-var-hooks-h () (defun doom-run-local-var-hooks-h ()
"Run MODE-local-vars-hook after local variables are initialized." "Run MODE-local-vars-hook after local variables are initialized."
(unless doom-inhibit-local-var-hooks (unless doom-inhibit-local-var-hooks
(set (make-local-variable 'doom-inhibit-local-var-hooks) t) (setq-local doom-inhibit-local-var-hooks t)
(run-hook-wrapped (intern-soft (format "%s-local-vars-hook" major-mode)) (run-hook-wrapped (intern-soft (format "%s-local-vars-hook" major-mode))
#'doom-try-run-hook))) #'doom-try-run-hook)))
@ -563,9 +563,8 @@ to least)."
;; interactive session. If they do, make sure they're properly initialized ;; interactive session. If they do, make sure they're properly initialized
;; when they do. ;; when they do.
(autoload 'doom-initialize-packages "core-packages") (autoload 'doom-initialize-packages "core-packages")
(autoload 'doom-initialize-core-packages "core-packages") (eval-after-load 'package '(require 'core-packages))
(with-eval-after-load 'package (require 'core-packages)) (eval-after-load 'straight '(doom-initialize-packages))
(with-eval-after-load 'straight (doom-initialize-packages))
;; Bootstrap our GC manager ;; Bootstrap our GC manager
(add-hook 'doom-first-input-hook #'gcmh-mode) (add-hook 'doom-first-input-hook #'gcmh-mode)
@ -574,9 +573,9 @@ to least)."
(add-hook 'after-change-major-mode-hook #'doom-run-local-var-hooks-h) (add-hook 'after-change-major-mode-hook #'doom-run-local-var-hooks-h)
(add-hook 'emacs-startup-hook #'doom-load-packages-incrementally-h) (add-hook 'emacs-startup-hook #'doom-load-packages-incrementally-h)
(add-hook 'window-setup-hook #'doom-display-benchmark-h) (add-hook 'window-setup-hook #'doom-display-benchmark-h)
(add-hook-trigger! 'doom-first-buffer-hook 'after-find-file 'doom-switch-buffer-hook) (doom-run-hook-on 'doom-first-buffer-hook '(after-find-file doom-switch-buffer-hook))
(add-hook-trigger! 'doom-first-file-hook 'after-find-file 'dired-initial-position-hook) (doom-run-hook-on 'doom-first-file-hook '(after-find-file dired-initial-position-hook))
(add-hook-trigger! 'doom-first-input-hook 'pre-command-hook) (doom-run-hook-on 'doom-first-input-hook '(pre-command-hook))
(if doom-debug-p (doom-debug-mode +1)) (if doom-debug-p (doom-debug-mode +1))
;; Load core/core-*.el, the user's private init.el, then their config.el ;; Load core/core-*.el, the user's private init.el, then their config.el