CoffeeScript中的匿名函数赋值

时间:2011-10-11 19:46:17

标签: coffeescript indentation anonymous-function

我正在努力使以下代码工作:

class Elements
    constructor: ->

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

        $.post bla success

它认为doSomething之后的所有内容都不是成功回调体的一部分。

编辑:我没有意识到CS对空格/标签敏感。 TextMate没有帮助; CS有更好的IDE吗?

1 个答案:

答案 0 :(得分:2)

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

  1. 将所有标签转换为现有文件中的空格(如Jeremy在评论中所述)和
  2. 使用窗口底部的切换器切换到软标签
  3. enter image description here

    这样,当你点击Tab键时,会插入指定空格的数量。通过避免使用实际的制表符,可以避免由 n 空间导致与 1 选项卡相同的人类造成的不可避免的混淆,但对编译器不明确。

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

    如果您决定切换到Sublime Text 2,您可以将这些行添加到Base File.sublime-settings首选项文件中,以强制使用给定数量的空格的软标签:

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

    总之:硬标签和具有重要空白的语言不会混合。配置编辑器以负责任地使用软选项卡和CoffeeScript。 :)