Fix *-local-vars-hook & doom-first-*-hook not triggering
When starting Emacs with a file path argument these hooks aren't set up in time for the file to be processed. Fixes #3891, #4082, #4104
This commit is contained in:
parent
390594442a
commit
b461f76b0d
3 changed files with 14 additions and 10 deletions
|
@ -492,8 +492,9 @@ advised)."
|
||||||
`(let ((fn (intern (format "%s-h" ,hook-var))))
|
`(let ((fn (intern (format "%s-h" ,hook-var))))
|
||||||
(fset
|
(fset
|
||||||
fn (lambda (&rest _)
|
fn (lambda (&rest _)
|
||||||
(run-hook-wrapped ,hook-var #'doom-try-run-hook)
|
(when after-init-time
|
||||||
(set ,hook-var nil)))
|
(run-hook-wrapped ,hook-var #'doom-try-run-hook)
|
||||||
|
(set ,hook-var nil))))
|
||||||
(put ,hook-var 'permanent-local t)
|
(put ,hook-var 'permanent-local t)
|
||||||
(dolist (on (list ,@targets))
|
(dolist (on (list ,@targets))
|
||||||
(if (functionp on)
|
(if (functionp on)
|
||||||
|
|
17
core/core.el
17
core/core.el
|
@ -572,16 +572,17 @@ to least)."
|
||||||
(with-eval-after-load 'package (require 'core-packages))
|
(with-eval-after-load 'package (require 'core-packages))
|
||||||
(with-eval-after-load 'straight (doom-initialize-packages))
|
(with-eval-after-load 'straight (doom-initialize-packages))
|
||||||
|
|
||||||
|
;; Bootstrap our GC manager
|
||||||
|
(add-hook 'doom-first-input-hook #'gcmh-mode)
|
||||||
|
|
||||||
;; Bootstrap the interactive session
|
;; Bootstrap the interactive session
|
||||||
(add-hook! 'window-setup-hook
|
(add-hook 'after-change-major-mode-hook #'doom-run-local-var-hooks-maybe-h)
|
||||||
(add-hook 'hack-local-variables-hook #'doom-run-local-var-hooks-h)
|
|
||||||
(add-hook 'after-change-major-mode-hook #'doom-run-local-var-hooks-maybe-h 'append)
|
|
||||||
(add-hook 'doom-first-input-hook #'gcmh-mode)
|
|
||||||
(add-hook-trigger! 'doom-first-input-hook 'pre-command-hook)
|
|
||||||
(add-hook-trigger! 'doom-first-file-hook 'after-find-file 'dired-initial-position-hook)
|
|
||||||
(add-hook-trigger! 'doom-first-buffer-hook 'after-find-file 'doom-switch-buffer-hook))
|
|
||||||
(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 'append)
|
(add-hook 'hack-local-variables-hook #'doom-run-local-var-hooks-h)
|
||||||
|
(add-hook 'window-setup-hook #'doom-display-benchmark-h)
|
||||||
|
(add-hook-trigger! '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)
|
||||||
|
(add-hook-trigger! '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
|
||||||
|
|
|
@ -39,6 +39,8 @@ killing and opening many LSP/eglot-powered buffers.")
|
||||||
;; GC strategy, so we modify its variables rather than
|
;; GC strategy, so we modify its variables rather than
|
||||||
;; `gc-cons-threshold' directly.
|
;; `gc-cons-threshold' directly.
|
||||||
(setq-default gcmh-high-cons-threshold (* 2 +lsp--default-gcmh-high-cons-threshold))
|
(setq-default gcmh-high-cons-threshold (* 2 +lsp--default-gcmh-high-cons-threshold))
|
||||||
|
(unless (bound-and-true-p gcmh-mode)
|
||||||
|
(gcmh-mode +1))
|
||||||
(gcmh-set-high-threshold)
|
(gcmh-set-high-threshold)
|
||||||
(setq +lsp--optimization-init-p t))))
|
(setq +lsp--optimization-init-p t))))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue