Назначение анонимных функций в CoffeeScript - PullRequest
1 голос
/ 11 октября 2011

Я изо всех сил пытаюсь заставить работать следующий код:

class Elements
    constructor: ->

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

        $.post bla success

Он думает, что все после doSomething не является частью тела обратного вызова.CS был чувствителен к пробелам и табуляциям.TextMate не помогает с этим;Есть ли лучшая IDE для CS?

1 Ответ

2 голосов
/ 12 октября 2011

TextMate, вероятно, является лучшим редактором для CoffeeScript, с пакетом, поддерживаемым создателем CoffeeScript Джереми Ашкенасом.(Пакет также совместим с Sublime Text 2 , который является хорошей кроссплатформенной альтернативой.) Решение здесь заключается в следующем:

  1. Преобразование всех вкладок в пробелы в существующемфайлы (как предложил Джереми в своем комментарии) и
  2. Переключитесь на Мягкие вкладки , используя этот переключатель в нижней части окна:

enter image description here

Таким образом, когда вы нажимаете клавишу Tab, вставляется количество указанных пробелов.Избегая использования фактических символов табуляции, вы избегаете неизбежной путаницы, возникающей из-за того, что n пробелы выглядят одинаково для человека, как табуляция 1 , но при этом являются неоднозначными для компилятора.

Норма в сообществе CoffeeScript - 2 пробела, но есть много людей, использующих 4 пробела (это официальный стандарт в Python-стране);просто выберите один и придерживайтесь его.

Если вы решите переключиться на Sublime Text 2, вы можете добавить эти строки в ваш файл настроек Base File.sublime-settings, чтобы заставить мягкие вкладки с заданным количеством пробелов:

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

В итоге: жесткие табуляции и языки со значительным пробелом не смешиваются.Сконфигурируйте свой редактор, чтобы использовать мягкие вкладки и CoffeeScript ответственно.:)

...