From 29dc436b649d93fab043d4023725380051e7e379 Mon Sep 17 00:00:00 2001 From: Bozhidar Batsov Date: Sun, 13 Jan 2013 20:42:17 +0200 Subject: [PATCH] Make the list of modules loaded by Prelude configurable. Modules loaded by Prelude can now easily be adjusted via the file `prelude-modules.el` in Prelude's installation folder. To disable a module simply comment it out; conversely uncomment a module to enable it. --- .gitignore | 1 + README.md | 36 ++++++++++++++++++++++++++++++++++++ init.el | 27 +++++---------------------- sample/prelude-modules.el | 24 ++++++++++++++++++++++++ utils/installer.sh | 6 ++++-- 5 files changed, 70 insertions(+), 24 deletions(-) create mode 100644 sample/prelude-modules.el diff --git a/.gitignore b/.gitignore index ccb90f3..d19d89f 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ custom.el places .smex-items savefile/ +/prelude-modules.el diff --git a/README.md b/README.md index 3c1c67a..084a0c1 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,9 @@ Note that the installer will back up any existing `.emacs` file or you're doing a manual install make sure you don't have a `.emacs` file or back up your existing `.emacs.d` directory manually. +Don't forget to adjust your `prelude-modules.el` file once the installation is done. +By default most of the modules that ship with Prelude are not loaded. + ## Installing Emacs 24 Obviously to use the Emacs Prelude you have to install Emacs 24 @@ -86,6 +89,39 @@ You'd do well to replace `~/.emacs.d` with the value of `user-emacs-directory` for your OS. You can check the value by doing `C-h v user-emacs-directory` inside Emacs. +## Enabling additional modules + +By default most of the modules that ship with Prelude are not loaded. + +```lisp +;;; Uncomment the modules you'd like to use and restart Prelude afterwards + +(require 'prelude-c) +;; (require 'prelude-clojure) +;; (require 'prelude-coffee) +;; (require 'prelude-common-lisp) +;; (require 'prelude-css) +(require 'prelude-emacs-lisp) +(require 'prelude-erc) +;; (require 'prelude-erlang) +;; (require 'prelude-haskell) +(require 'prelude-js) +;; (require 'prelude-latex) +(require 'prelude-lisp) +;; (require 'prelude-markdown) +;; (require 'prelude-mediawiki) +(require 'prelude-org) +(require 'prelude-perl) +;; (require 'prelude-python) +;; (require 'prelude-ruby) +;; (require 'prelude-scala) +(require 'prelude-scheme) +;; (require 'prelude-scss) +(require 'prelude-xml) +``` + +You'll need to adjust your `prelude-modules.el` file once the installation is done. + ## Running Nothing fancy here. Just start Emacs as usual. Personally I run Emacs diff --git a/init.el b/init.el index da51ca2..4f7a532 100644 --- a/init.el +++ b/init.el @@ -54,6 +54,8 @@ ELPA (or MELPA).") "This folder houses additional yasnippet bundles added by the users.") (defvar prelude-savefile-dir (expand-file-name "savefile" prelude-dir) "This folder stores all the automatically generated save/history-files.") +(defvar prelude-modules-file (expand-file-name "prelude-modules.el" prelude-dir) + "This files contains a list of modules that will be loaded by Prelude.") (unless (file-exists-p prelude-savefile-dir) (make-directory prelude-savefile-dir)) @@ -90,28 +92,9 @@ Emacs load path." ;; the modules (require 'prelude-programming) -(require 'prelude-c) -(require 'prelude-clojure) -(require 'prelude-coffee) -(require 'prelude-common-lisp) -(require 'prelude-css) -(require 'prelude-emacs-lisp) -(require 'prelude-erc) -(require 'prelude-erlang) -(require 'prelude-haskell) -(require 'prelude-js) -(require 'prelude-latex) -(require 'prelude-lisp) -(require 'prelude-markdown) -(require 'prelude-mediawiki) -(require 'prelude-org) -(require 'prelude-perl) -(require 'prelude-python) -(require 'prelude-ruby) -(require 'prelude-scala) -(require 'prelude-scheme) -(require 'prelude-scss) -(require 'prelude-xml) + +(when (file-exists-p prelude-modules-file) + (load prelude-modules-file)) ;; config changes made through the customize UI will be store here (setq custom-file (expand-file-name "custom.el" prelude-personal-dir)) diff --git a/sample/prelude-modules.el b/sample/prelude-modules.el new file mode 100644 index 0000000..12ffad4 --- /dev/null +++ b/sample/prelude-modules.el @@ -0,0 +1,24 @@ +;;; Uncomment the modules you'd like to use and restart Prelude afterwards + +(require 'prelude-c) +;; (require 'prelude-clojure) +;; (require 'prelude-coffee) +;; (require 'prelude-common-lisp) +;; (require 'prelude-css) +(require 'prelude-emacs-lisp) +(require 'prelude-erc) +;; (require 'prelude-erlang) +;; (require 'prelude-haskell) +(require 'prelude-js) +;; (require 'prelude-latex) +(require 'prelude-lisp) +;; (require 'prelude-markdown) +;; (require 'prelude-mediawiki) +(require 'prelude-org) +(require 'prelude-perl) +;; (require 'prelude-python) +;; (require 'prelude-ruby) +;; (require 'prelude-scala) +(require 'prelude-scheme) +;; (require 'prelude-scss) +(require 'prelude-xml) diff --git a/utils/installer.sh b/utils/installer.sh index 702c271..ca4ac8d 100755 --- a/utils/installer.sh +++ b/utils/installer.sh @@ -207,6 +207,7 @@ else # Nothing yet so just install prelude install_prelude make_prelude_dirs + cp $PRELUDE_INSTALL_DIR/sample/prelude-modules.el $PRELUDE_INSTALL_DIR fi if [ -z $PRELUDE_SKIP_BC ]; @@ -216,9 +217,9 @@ then printf " Bytecompiling Prelude.\n" if [ x$PRELUDE_VERBOSE != x ] then - emacs -batch -f batch-byte-compile $PRELUDE_INSTALL_DIR/prelude/*.el + emacs -batch -f batch-byte-compile $PRELUDE_INSTALL_DIR/core/*.el else - emacs -batch -f batch-byte-compile $PRELUDE_INSTALL_DIR/prelude/*.el > /dev/null 2>&1 + emacs -batch -f batch-byte-compile $PRELUDE_INSTALL_DIR/core/*.el > /dev/null 2>&1 fi else printf "$YELLOW Emacs not found.$RESET Skipping bytecompilation.\n" @@ -242,3 +243,4 @@ printf "$BBLUE | |_) | __/ _ \ | | | |/ _ |/ _ \ \n" printf "$BBLUE | __/| | | __/ | |_| | (_| | __/ \n" printf "$BBLUE |_| |_| \___|_|\__,_|\__,_|\___| \n\n" printf "$GREEN ... is now installed and ready to do thy bidding, Master $USER!$RESET\n" +printf "$GREEN Don't forget to adjust the modules you want to use in $PRELUDE_INSTALL_DIR/prelude-modules.el!$RESET\n"