154 lines
4.8 KiB
EmacsLisp
154 lines
4.8 KiB
EmacsLisp
;;;;
|
|
;; 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.
|
|
)
|