aboutsummaryrefslogtreecommitdiffstats
path: root/emacs/.emacs.d/init.org
diff options
context:
space:
mode:
authorGravatar Tom Willemse2016-09-28 00:01:26 +0200
committerGravatar Tom Willemse2016-09-28 00:01:26 +0200
commitc6f43c514b4b5afe3bd156f7522fc23589cc77d1 (patch)
treedf5ba60d9f1906d16953e5bee9615c1e9edb34e7 /emacs/.emacs.d/init.org
parented7cd3dc4a91d42fb15e503ebcd850ec81574fd4 (diff)
downloadnew-dotfiles-c6f43c514b4b5afe3bd156f7522fc23589cc77d1.tar.gz
new-dotfiles-c6f43c514b4b5afe3bd156f7522fc23589cc77d1.zip
Add clojure and cider configuration
Diffstat (limited to 'emacs/.emacs.d/init.org')
-rw-r--r--emacs/.emacs.d/init.org87
1 files changed, 87 insertions, 0 deletions
diff --git a/emacs/.emacs.d/init.org b/emacs/.emacs.d/init.org
index 13f18fd..b440c06 100644
--- a/emacs/.emacs.d/init.org
+++ b/emacs/.emacs.d/init.org
@@ -701,6 +701,93 @@ To start off, first I need to enable lexical binding.
(add-hook 'css-mode-hook 'electric-indent-local-mode)
#+END_SRC
+** Clojure mode
+
+ #+BEGIN_SRC emacs-lisp
+ (ensure-library clojure-mode)
+ #+END_SRC
+
+ Install extra font-locking for clojure.
+
+ #+BEGIN_SRC emacs-lisp
+ (ensure-library clojure-mode-extra-font-locking)
+
+ (with-eval-after-load 'clojure-mode
+ (require 'clojure-mode-extra-font-locking))
+ #+END_SRC
+
+ Enable paredit mode.
+
+ #+BEGIN_SRC emacs-lisp
+ (add-hook 'clojure-mode-hook 'paredit-mode)
+ #+END_SRC
+
+ Use the clojure repl as the inferior lisp mode.
+
+ #+BEGIN_SRC emacs-lisp
+ (eval-when-compile (require 'inf-lisp))
+
+ (defun oni:clojure-set-inferior-lisp ()
+ (setq inferior-lisp-program "lein repl"))
+ #+END_SRC
+
+ Add a little more font locking still, and some indentation. This is
+ included in the Clojure for the Brave and True configuration.
+
+ #+BEGIN_SRC emacs-lisp
+ (add-hook 'clojure-mode-hook 'oni-clojure-add-font-lock)
+ (add-hook 'clojure-mode-hook 'oni-clojure-add-indent)
+ #+END_SRC
+
+** Cider mode
+
+ Cider is like Slime for Common Lisp. This configuration is copied
+ from the one provided by Clojure for the Brave and True.
+
+ #+BEGIN_SRC emacs-lisp
+ (ensure-library cider)
+ #+END_SRC
+
+ Provides minibuffer documentation for the code you're typing into
+ the repl.
+
+ #+BEGIN_SRC emacs-lisp
+ (add-hook 'cider-mode-hook 'cider-turn-on-eldoc-mode)
+ #+END_SRC
+
+ Go right to the REPL buffer when it's finished connecting
+
+ #+BEGIN_SRC emacs-lisp
+ (with-eval-after-load 'cider
+ (setq cider-repl-pop-to-buffer-on-connect t))
+ #+END_SRC
+
+ When there's a cider error, show its buffer and switch to it.
+
+ #+BEGIN_SRC emacs-lisp
+ (setq cider-show-error-buffer t
+ cider-auto-select-error-buffer t)
+ #+END_SRC
+
+ Where to store the cider history.
+
+ #+BEGIN_SRC emacs-lisp
+ (setq cider-repl-history-file
+ (oni:data-location "cider-history"))
+ #+END_SRC
+
+ Wrap when navigating history.
+
+ #+BEGIN_SRC emacs-lisp
+ (setq cider-repl-wrap-history t)
+ #+END_SRC
+
+ Enable paredit in your REPL.
+
+ #+BEGIN_SRC emacs-lisp
+ (add-hook 'cider-repl-mode-hook 'paredit-mode)
+ #+END_SRC
+
* Applications
** Magit