clojure-style-guide icon indicating copy to clipboard operation
clojure-style-guide copied to clipboard

Clarify `if` indentation

Open gpind opened this issue 3 years ago • 3 comments

By my reading of https://github.com/bbatsov/clojure-style-guide#vertically-align-fn-args, we should indent if like so:

(if condition
    (f1)
    (f2))

...but that's contradicted by other examples in the guide, which use the common two-space indentation for if. Technically the rule might not cover if since it's a special form and not a macro, but there's also if-let and if-some and it would be very weird IMO to indent them differently. It would be good to mention this explicitly, even if just to call out if and friends as exceptions.

(I searched for existing issues covering this, but the closest I found was #87.)

gpind avatar Oct 29 '21 22:10 gpind

All macros/special forms that take a body parameter are indented differently, so I don't think there's anything special about the handling of if, if-let and so on. Can you elaborate on what exactly is different for them from your perspective compared to other macros operating on a bunch of forms?

bbatsov avatar Oct 30 '21 07:10 bbatsov

if doesn't have a body param, so it shouldn't be covered by the "Body Indentation" rule, right?

gpind avatar Nov 01 '21 17:11 gpind

Yeah, I guess that's a valid point. Perhaps the bare if deserves some special treatment, or at least a disclaimer.

bbatsov avatar Nov 04 '21 08:11 bbatsov