3
votes

In an Emacs/Cider setup (which is build on top of clojure-mode and paredit-mode), tab stops are usually ignored. Or, say they indent just to the second symbol of an s-expression.

Sometimes, e.g for larger configurations, it's desirable to indent also the subsequent symbols:

This would be the default:

(def config [:hello 34 :goodbye
             :a 34 :c
             :long-word 0 :a])

What is to do, if it should look like:

(def config [:hello      34   :goodbye
             :a          34   :c
             :long-word  0    :a])
2
Is your config a vector? If it is map, clojure-align should do the job. - OlegTheCat
nice, this is good for maps. But actually I need it for vectors as well... - Anton Harald

2 Answers

0
votes

Emacs will not align the elements in vector as you wish, however, you can use M-i (tab-to-tab-stop) to insert tab (or multiple spaces depends on your config). So you can manually align the elements like the way you like.

0
votes

If you can live with having your config as a map instead of a vector, clojure-mode does the right thing when you switch on clojure-align-forms-automatically:

(def config {:hello 34
             :goodbye [something else]
             :a [34 :c]
             :long-word 0
             :a 'b})

=>

(def config {:hello     34
             :goodbye   [something else]
             :a         [34 :c]
             :long-word 0
             :a         'b})