2011-10-11 75 views
1

我努力使下面的代码工作:匿名函数assignement在CoffeeScript中

class Elements 
    constructor: -> 

    loadAll: -> 
     success = (data) => 
      doSomething 
      doSomethingElse 

     $.post bla success 

它认为一切后DoSomething的不是成功回调身体的一部分。

编辑:我没有意识到CS是空间/制表符敏感。 TextMate对此没有帮助; CS有更好的IDE吗?

+1

TextMate的CoffeeScript包仅仅是一个谷歌:https://github.com/jashkenas/coffee-script-tmbundle –

+0

我使用它,它很好的着色,但它没有帮助空间/标签问题。我会尝试找到一些东西......在Eclipse中,你可以告诉它使用空间来制表符。 – AlexG

+1

究竟是什么问题?我不使用TextMate,但像程序员一样流行,我确信它具有可配置的选项卡/空间设置,可能是基于每个文件类型。 –

回答

2

TextMate可能是CoffeeScript的编辑器best,由CoffeeScript创建者Jeremy Ashkenas维护。 (束也与Sublime Text 2兼容,这是一个很好的跨平台替代。)这里的解决方案是:

  1. 转换所有的标签,以便在现有的文件空间(如杰里米在他的评论中所建议的),和
  2. 切换到软标签使用该切换器在窗口的底部:

enter image description here

这样一来,当你按下Tab键,S的数量插入特定的空格。通过避免使用实际的制表符,可以避免不可避免的混淆,这种混淆从n看起来与人类相同,但对编译器不明确。

CoffeeScript社区的规范是2个空格,但有很多人使用4个空格(这是Python-land的官方标准);只挑一个并坚持下去。

如果你决定做开关到崇高的文本2,你可以将这些行添加到您的Base File.sublime-settings首选项文件强制软标签与给定数量的空格:

"tab_size": 2, 
"translate_tabs_to_spaces": true, 

总之:硬标签而有明显空白的语言不会混合。将您的编辑器配置为使用软标签和CoffeeScript负责任。 :)

+0

'4 spaces == tab' in most places(除了由于某种原因决定选项卡应该等于* 8 *空格的浏览器...) –

+0

@ RicardoTomasi Right;如果我使用硬标签,我会使用4个空格。但是因为我是用2个空格缩进代码,所以我想让“Tab”键代表“插入两个空格”。 –