;;;; ;; Packages ;;;; ;; Define package repositories (require 'package) (add-to-list 'package-archives '("tromey" . "http://tromey.com/elpa/") t) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) (add-to-list 'package-archives '("melpa-stable" . "http://stable.melpa.org/packages/") t) (add-to-list 'package-pinned-packages '(cider . "melpa-stable") t) (add-to-list 'package-pinned-packages '(magit . "melpa-stable") t) ;; Load and activate emacs packages. Do this first so that the ;; packages are loaded before you start trying to modify them. ;; This also sets the load path. (package-initialize) ;; Download the ELPA archive description if needed. ;; This informs Emacs about the latest versions of all packages, and ;; makes them available for download. (when (not package-archive-contents) (package-refresh-contents)) ;; Define he following variables to remove the compile-log warnings ;; when defining ido-ubiquitous ;; (defvar ido-cur-item nil) ;; (defvar ido-default-item nil) ;; (defvar ido-cur-list nil) ;; (defvar predicate nil) ;; (defvar inherit-input-method nil) ;; The packages you want installed. You can also install these ;; manually with M-x package-install ;; Add in your own as you wish: (defvar my-packages '(;; makes handling lisp expressions much, much easier ;; Cheatsheet: http://www.emacswiki.org/emacs/PareditCheatsheet paredit ;; key bindings and code colorization for Clojure ;; https://github.com/clojure-emacs/clojure-mode clojure-mode ;; extra syntax highlighting for clojure clojure-mode-extra-font-locking ;; integration with a Clojure REPL ;; https://github.com/clojure-emacs/cider cider ;; allow ido usage in as many contexts as possible. see ;; customizations/navigation.el line 23 for a description ;; of ido ido-completing-read+ ;; Enhances M-x to allow easier execution of commands. Provides ;; a filterable list of possible commands in the minibuffer ;; http://www.emacswiki.org/emacs/Smex smex ;; project navigation projectile ;; colorful parenthesis matching rainbow-delimiters ;; edit html tags like sexps tagedit ;; git integration magit)) ;; On OS X, an Emacs instance started from the graphical user ;; interface will have a different environment than a shell in a ;; terminal window, because OS X does not run a shell during the ;; login. Obviously this will lead to unexpected results when ;; calling external utilities like make from Emacs. ;; This library works around this problem by copying important ;; environment variables from the user's shell. ;; https://github.com/purcell/exec-path-from-shell (if (eq system-type 'darwin) (add-to-list 'my-packages 'exec-path-from-shell)) (dolist (p my-packages) (when (not (package-installed-p p)) (package-install p))) ;; Place downloaded elisp files in ~/.emacs.d/vendor. You'll then be able ;; to load them. ;; ;; For example, if you download yaml-mode.el to ~/.emacs.d/vendor, ;; then you can add the following code to this file: ;; ;; (require 'yaml-mode) ;; (add-to-list 'auto-mode-alist '("\\.yml$" . yaml-mode)) ;; ;; Adding this code will make Emacs enter yaml mode whenever you open ;; a .yml file (add-to-list 'load-path "~/.emacs.d/vendor") ;;;; ;; Customization ;;;; ;; Add a directory to our load path so that when you `load` things ;; below, Emacs knows where to look for the corresponding file. (add-to-list 'load-path "~/.emacs.d/customizations") ;; Sets up exec-path-from-shell so that Emacs will use the correct ;; environment variables (load "shell-integration.el") ;; These customizations make it easier for you to navigate files, ;; switch buffers, and choose options from the minibuffer. (load "navigation.el") ;; These customizations change the way emacs looks and disable/enable ;; some user interface elements (load "ui.el") ;; These customizations make editing a bit nicer. (load "editing.el") ;; Hard-to-categorize customizations (load "misc.el") ;; For editing lisps (load "elisp-editing.el") ;; Langauage-specific (load "setup-clojure.el") (load "setup-js.el") (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(coffee-tab-width 2) '(package-selected-packages '(darcula-theme atom-one-dark-theme magit tagedit rainbow-delimiters projectile smex ido-completing-read+ cider clojure-mode-extra-font-locking clojure-mode paredit exec-path-from-shell))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. )