CoffeeScript не будет интерпретировать следующую строку как тело оператора, если строка заканчивается оператором, так что все в порядке:
# OK!
if a and
not
b
c()
он компилируется в
if (a && !b) {
c();
}
таким образом, ваш if
может быть отформатирован как
# OK!
if (foo is
bar.data.stuff and
foo isnt bar.data.otherstuff) or
(not foo and not bar)
awesome sauce
else lame sauce
или как любая другая схема разрыва строки, если строки заканчиваются на and
или or
или is
или ==
или not
или некоторый такой оператор
Относительно отступа, вы можете сделать отступ для не первых строк вашего if
, если тело имеет еще более отступ:
# OK!
if (foo is
bar.data.stuff and
foo isnt bar.data.otherstuff) or
(not foo and not bar)
awesome sauce
else lame sauce
Чего вы не можетесделать это:
# BAD
if (foo #doesn't end on operator!
is bar.data.stuff and
foo isnt bar.data.otherstuff) or
(not foo and not bar)
awesome sauce
else lame sauce