If you’re writing Clojure in Emacs you should check out
clj-refactor. It
provides some neat functionality. Some examples include the ability to
extract functions, introduce let
forms, and inline symbols. It also
has a feature called “magic requires” that automatically requires
common namespaces when you type their short form.
Out of the box five short forms are supported. They are io
for
clojure.java.io
, set
for clojure.set
, str
for
clojure.string
, walk
for clojure.walk
, and zip
for
clojure.zip
. If you type (str/
then (:require
[clojure.string :as str])
will be added to your ns
form. It is
pretty awesome. This feature is on by default but you can turn it off
by adding (setq cljr-magic-requires nil)
to your Emacs
configuration.
This feature is also extensible. You can add your own mappings of
short form to namespace. The following snippet of elisp adds mappings
for maps
, seqs
, and string
.
1 2 3 4 |
|
It doesn’t take a lot of code but having it is awesome. If there are namespaces you frequently require I highly recommend setting this up.