CoffeeScript:意外的INDENT错误

时间:2011-12-18 09:01:17

标签: coffeescript

我正在试用我的Rails 3.1应用程序中的CoffeeScript。但是,我无法做到 弄清楚如何在没有得到的情况下在CoffeeScript中打破长行 以上错误

例如,您将如何/在哪里打破以下代码行

alert x for x in [1,2,3,4,5]  when x > 2

如果你想要像

这样的东西
alert x for
  x in [1,2,3,4,5]
  when x > 2

在我的vimrc中,我已经设置了

 ts=2, sw=2 and I expand tabs. 

然而,我无法像上面那样简单地获得正常工作的东西。

My Gemfile.lock显示coffee-script-2.2.0 with coffee-script-source 1.1.3

2 个答案:

答案 0 :(得分:6)

如果你有一个太长的理解,你可以用@ \作为@brandizzi提及它,但我认为你可能有更好的运气只是使用理解它们有意义并扩展到'常规'代码他们没有:

alert x for x in [1,2,3,4,5]  when x > 2

...可以改写为......

for x in [1,2,3,4,5]
  alert x if x > 2

......甚至......

for x in [1,2,3,4,5]
  if x > 2
    alert x

换句话说,理解是简短,简洁的片段的语法糖 - 你不必将它们用于所有事情。

答案 1 :(得分:4)

你试图将理解扩展到多行,这是不允许的。它要么需要在一条线上,要么是一个合适的循环。您的单行版本按预期工作,因此我将显示循环版本:

for x in [1..5] when x > 2
  alert x

您可能会发现将这样的小东西放到http://jashkenas.github.com/coffee-script/的CoffeeScript编译器中是有帮助的,看看它们是否正在编译您期望的内容。