2011-10-11 70 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」鍵代表「插入兩個空格」。 –