Apply doom fixes/hacks before loading private init.el
Fixes void-variable: doom-auto-minor-mode-alist errors
This commit is contained in:
parent
5282c6c716
commit
197631f6a4
1 changed files with 42 additions and 42 deletions
84
core/core.el
84
core/core.el
|
@ -142,6 +142,48 @@ ability to invoke the debugger in debug mode."
|
||||||
nil)
|
nil)
|
||||||
|
|
||||||
|
|
||||||
|
;;
|
||||||
|
;; Emacs fixes/hacks
|
||||||
|
;;
|
||||||
|
|
||||||
|
;; Automatic minor modes
|
||||||
|
(defvar doom-auto-minor-mode-alist '()
|
||||||
|
"Alist mapping filename patterns to corresponding minor mode functions, like
|
||||||
|
`auto-mode-alist'. All elements of this alist are checked, meaning you can
|
||||||
|
enable multiple minor modes for the same regexp.")
|
||||||
|
|
||||||
|
(defun doom|enable-minor-mode-maybe ()
|
||||||
|
"Check file name against `doom-auto-minor-mode-alist'."
|
||||||
|
(when buffer-file-name
|
||||||
|
(let ((name buffer-file-name)
|
||||||
|
(remote-id (file-remote-p buffer-file-name))
|
||||||
|
(alist doom-auto-minor-mode-alist))
|
||||||
|
;; Remove backup-suffixes from file name.
|
||||||
|
(setq name (file-name-sans-versions name))
|
||||||
|
;; Remove remote file name identification.
|
||||||
|
(when (and (stringp remote-id)
|
||||||
|
(string-match-p (regexp-quote remote-id) name))
|
||||||
|
(setq name (substring name (match-end 0))))
|
||||||
|
(while (and alist (caar alist) (cdar alist))
|
||||||
|
(if (string-match-p (caar alist) name)
|
||||||
|
(funcall (cdar alist) 1))
|
||||||
|
(setq alist (cdr alist))))))
|
||||||
|
(add-hook 'find-file-hook #'doom|enable-minor-mode-maybe)
|
||||||
|
|
||||||
|
(defun doom*set-indirect-buffer-filename (orig-fn base-buffer name &optional clone)
|
||||||
|
"In indirect buffers, `buffer-file-name' is nil, which can cause problems
|
||||||
|
with functions that require it (like modeline segments)."
|
||||||
|
(let ((file-name (buffer-file-name base-buffer))
|
||||||
|
(buffer (funcall orig-fn base-buffer name clone)))
|
||||||
|
(when (and file-name buffer)
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(unless buffer-file-name
|
||||||
|
(setq buffer-file-name file-name
|
||||||
|
buffer-file-truename (file-truename file-name)))))
|
||||||
|
buffer))
|
||||||
|
(advice-add #'make-indirect-buffer :around #'doom*set-indirect-buffer-filename)
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;; Initialize
|
;; Initialize
|
||||||
(eval-and-compile
|
(eval-and-compile
|
||||||
|
@ -194,47 +236,5 @@ this, you'll get stuttering and random freezes), and resets
|
||||||
(add-hook! '(emacs-startup-hook doom-reload-hook) #'doom|finalize)
|
(add-hook! '(emacs-startup-hook doom-reload-hook) #'doom|finalize)
|
||||||
(add-hook 'emacs-startup-hook #'doom|after-init))
|
(add-hook 'emacs-startup-hook #'doom|after-init))
|
||||||
|
|
||||||
|
|
||||||
;;
|
|
||||||
;; Emacs fixes/hacks
|
|
||||||
;;
|
|
||||||
|
|
||||||
;; Automatic minor modes
|
|
||||||
(defvar doom-auto-minor-mode-alist '()
|
|
||||||
"Alist mapping filename patterns to corresponding minor mode functions, like
|
|
||||||
`auto-mode-alist'. All elements of this alist are checked, meaning you can
|
|
||||||
enable multiple minor modes for the same regexp.")
|
|
||||||
|
|
||||||
(defun doom|enable-minor-mode-maybe ()
|
|
||||||
"Check file name against `doom-auto-minor-mode-alist'."
|
|
||||||
(when buffer-file-name
|
|
||||||
(let ((name buffer-file-name)
|
|
||||||
(remote-id (file-remote-p buffer-file-name))
|
|
||||||
(alist doom-auto-minor-mode-alist))
|
|
||||||
;; Remove backup-suffixes from file name.
|
|
||||||
(setq name (file-name-sans-versions name))
|
|
||||||
;; Remove remote file name identification.
|
|
||||||
(when (and (stringp remote-id)
|
|
||||||
(string-match-p (regexp-quote remote-id) name))
|
|
||||||
(setq name (substring name (match-end 0))))
|
|
||||||
(while (and alist (caar alist) (cdar alist))
|
|
||||||
(if (string-match-p (caar alist) name)
|
|
||||||
(funcall (cdar alist) 1))
|
|
||||||
(setq alist (cdr alist))))))
|
|
||||||
(add-hook 'find-file-hook #'doom|enable-minor-mode-maybe)
|
|
||||||
|
|
||||||
(defun doom*set-indirect-buffer-filename (orig-fn base-buffer name &optional clone)
|
|
||||||
"In indirect buffers, `buffer-file-name' is nil, which can cause problems
|
|
||||||
with functions that require it (like modeline segments)."
|
|
||||||
(let ((file-name (buffer-file-name base-buffer))
|
|
||||||
(buffer (funcall orig-fn base-buffer name clone)))
|
|
||||||
(when (and file-name buffer)
|
|
||||||
(with-current-buffer buffer
|
|
||||||
(unless buffer-file-name
|
|
||||||
(setq buffer-file-name file-name
|
|
||||||
buffer-file-truename (file-truename file-name)))))
|
|
||||||
buffer))
|
|
||||||
(advice-add #'make-indirect-buffer :around #'doom*set-indirect-buffer-filename)
|
|
||||||
|
|
||||||
(provide 'core)
|
(provide 'core)
|
||||||
;;; core.el ends here
|
;;; core.el ends here
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue