From 4ca22fbf1c408f8f64a07520ed7c95843ce64234 Mon Sep 17 00:00:00 2001 From: Bozhidar Batsov Date: Fri, 6 Dec 2013 17:34:06 +0200 Subject: [PATCH] [Fix #451] Add the ability to preload personal code --- README.md | 6 ++++++ init.el | 11 +++++++++++ personal/preload/.gitkeep | 0 3 files changed, 17 insertions(+) create mode 100644 personal/preload/.gitkeep diff --git a/README.md b/README.md index e1e6574..bdc05fe 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,12 @@ If you require just a single package you can also use: (prelude-require-package 'some-package) ``` +#### Preloading personal config + +Sometimes you might want to load code before Prelude has started loading. Prelude will automatically preload all +Emacs Lisp files in your `personal/preload` directory. Note that at this point you can't using anything from +Prelude, except a few variables like `prelude-dir`, etc (since nothing is yet loaded). + #### Disabling whitespace-mode Although `whitespace-mode` is awesome some people might find it too diff --git a/init.el b/init.el index 3cc3364..71ef397 100644 --- a/init.el +++ b/init.el @@ -53,6 +53,8 @@ Users of Emacs Prelude are encouraged to keep their personal configuration changes in this directory. All Emacs Lisp files there are loaded automatically by Prelude.") +(defvar prelude-personal-preload-dir (expand-file-name "preload" prelude-personal-dir) + "This directory is for your personal configuration, that you want loaded before Prelude.") (defvar prelude-vendor-dir (expand-file-name "vendor" prelude-dir) "This directory houses packages that are not yet available in ELPA (or MELPA).") (defvar prelude-savefile-dir (expand-file-name "savefile" prelude-dir) @@ -83,6 +85,13 @@ by Prelude.") ;; each 50MB of allocated data (the default is on every 0.76MB) (setq gc-cons-threshold 50000000) +;; preload the personal settings from `prelude-personal-preload-dir' +(when (file-exists-p prelude-personal-preload-dir) + (message "Loading personal configuration files in %s..." prelude-personal-preload-dir) + (mapc 'load (directory-files prelude-personal-preload-dir 't "^[^#].*el$"))) + +(message "Loading Prelude's core...") + ;; the core stuff (require 'prelude-packages) (require 'prelude-ui) @@ -95,6 +104,8 @@ by Prelude.") (when (eq system-type 'darwin) (require 'prelude-osx)) +(message "Loading Prelude's modules...") + ;; the modules (when (file-exists-p prelude-modules-file) (load prelude-modules-file)) diff --git a/personal/preload/.gitkeep b/personal/preload/.gitkeep new file mode 100644 index 0000000..e69de29