;;; init.el --- Prelude's configuration entry point. ;; ;; Copyright (c) 2011 Bozhidar Batsov ;; ;; Author: Bozhidar Batsov ;; URL: http://batsov.com/prelude ;; Version: 1.0.0 ;; Keywords: convenience ;; This file is not part of GNU Emacs. ;;; Commentary: ;; This file simply sets up the default load path and requires ;; the various modules defined within Emacs Prelude. ;;; License: ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License ;; as published by the Free Software Foundation; either version 3 ;; of the License, or (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (message "Prelude is powering up... Be patient, Master %s!" (getenv "USER")) (defvar prelude-dir (file-name-directory load-file-name) "The root dir of the Emacs Prelude distribution.") (defvar prelude-core-dir (expand-file-name "core" prelude-dir) "The home of Prelude's core functionality.") (defvar prelude-modules-dir (expand-file-name "modules" prelude-dir) "This directory houses all of the built-in Prelude modules.") (defvar prelude-personal-dir (expand-file-name "personal" prelude-dir) "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-vendor-dir (expand-file-name "vendor" prelude-dir) "This directory house Emacs Lisp packages that are not yet available in ELPA (or MELPA).") (defvar prelude-snippets-dir (expand-file-name "snippets" prelude-dir) "This folder houses additional yasnippet bundles distributed with Prelude.") (defvar prelude-personal-snippets-dir (expand-file-name prelude-personal-dir "snippets") "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.") (unless (file-exists-p prelude-savefile-dir) (make-directory prelude-savefile-dir)) (defun prelude-add-subfolders-to-load-path (parent-dir) "Adds all first level `parent-dir' subdirs to the Emacs load path." (dolist (f (directory-files parent-dir)) (let ((name (expand-file-name f parent-dir))) (when (and (file-directory-p name) (not (equal f "..")) (not (equal f "."))) (add-to-list 'load-path name))))) ;; add Prelude's directories to Emacs's `load-path' (add-to-list 'load-path prelude-core-dir) (add-to-list 'load-path prelude-modules-dir) (add-to-list 'load-path prelude-vendor-dir) (prelude-add-subfolders-to-load-path prelude-vendor-dir) (require 'dash) ;; the core stuff (require 'prelude-packages) (require 'prelude-ui) (require 'prelude-core) (require 'prelude-mode) (require 'prelude-editor) (require 'prelude-global-keybindings) ;; OSX specific settings (when (eq system-type 'darwin) (require 'prelude-osx)) ;; 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-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) ;; config changes made through the customize UI will be store here (setq custom-file (expand-file-name "custom.el" prelude-personal-dir)) ;; load the personal settings (this includes `custom-file') (when (file-exists-p prelude-personal-dir) (mapc 'load (directory-files prelude-personal-dir 't "^[^#].*el$"))) (message "Prelude is ready to do thy bidding, Master %s!" (getenv "USER")) (prelude-eval-after-init ;; greet the use with some useful tip (run-at-time 5 nil 'prelude-tip-of-the-day)) ;;; init.el ends here