(defn adjust-indent
"Returns how much the indent should be adjusted for the given token."
[token]
(if (list? token)
(let [first-val (-> token first unwrap-value)]
(cond
; multi-arity functions
(or (vector? first-val) (list? first-val))
0
; :require and other keywords in ns
(keyword? first-val)
(inc (count (str first-val)))
; threading macros
(contains? special-indent first-val)
(inc (count (str first-val)))
; any other list
:else
1))
0))