Неожиданный «INDENT» в примере кода CoffeeScript - PullRequest
25 голосов
/ 20 ноября 2011

Когда я впервые играл с CoffeeScript, я столкнулся с проблемой. Чтобы отладить мою проблему, я попытался заменить весь мой файл одним из примеров кода с сайта сценариев кофе:

kids =
  brother:
    name: "Max"
    age:  11
  sister:
    name: "Ida"
    age:  9

Однако, когда я пытаюсь скомпилировать этот код, я получаю:

Error: In coffee/main.coffee, Parse error on line 3: Unexpected 'INDENT'
    at Object.parseError (/usr/lib/coffeescript/parser.js:501:11)
    at Object.parse (/usr/lib/coffeescript/parser.js:573:32)
    at Object.compile (/usr/lib/coffeescript/coffee-script.js:23:22)
    at /usr/lib/coffeescript/command.js:99:27
    at /usr/lib/coffeescript/command.js:72:28
    at fs:84:13
    at node.js:773:9
In coffee/main.coffee, Parse error on line 3: Unexpected 'INDENT'

Поскольку это код с сайта CoffeeScript, я предполагаю, что сам код не является проблемой. Тем не менее, компилятор также, кажется, работает правильно; если я скомпилирую:

a = 2

генерирует файл с:

(function(){
  var a;
  a = 2;
})();

как и ожидалось. Другими словами, код хороший, компилятор хороший, и все же каким-то образом я получаю эту неожиданную ошибку «IDENT» ... Может кто-нибудь помочь мне понять, что происходит?

Ответы [ 6 ]

65 голосов
/ 20 ноября 2011

Я почти уверен, что это проблема табуляции и пробелов. Скажите вашему редактору не преобразовывать пробелы во вкладки, если он это делает Также просмотрите курсор с помощью курсора и убедитесь, что он не перепрыгивает через пустые области.

Проблема в том, что хотя обычные редакторы видят вкладку как эквивалентную двум или четырем пробелам, coffeescript видит ее как один пробел, поэтому отступы перепутаны.

Если все это не помогает, убедитесь, что у вас установлена ​​последняя версия coffeescript, например, 1.1.0 или новее.

9 голосов
/ 19 сентября 2013

Если вы используете IDE JetBrains (IntelliJ, PHPStorm и т. Д.), Изменение настроек, которое у меня сработало:

Файл> Настройки> Настройки проекта> Стиль кода> CoffeeScript> Вкладки и отступы

Галочка «Использовать символ табуляции» и «Умные вкладки»

4 голосов
/ 20 ноября 2011

Код в порядке. Убедитесь, что вы не перепутали пробелы (странные контрольные символы, отображаемые в виде пробелов, вкладок или аналогичных элементов).

0 голосов
/ 06 июля 2016

В Atom вы можете автоматически преобразовывать табуляцию в пробелы:

Packages > Whitespace > Convert Tabs to Spaces

0 голосов
/ 24 июля 2014

Вы можете решить это двумя способами 1. ЕСЛИ используя веб-шторм File-> Default Settings, как сказано выше 2. Другой обходной путь, это использовать другой редактор, такой как Sublime, там вы можете нажать Enter на более ранней строке, и он автоматически добавит для вас пробелы с пробелами

0 голосов
/ 04 ноября 2013

Если у вас та же проблема, но с отступом все в порядке,
, значит, вы страдаете от ошибка 2868 .

В основном, эта ошибка вводит в заблуждение.Проверьте наличие отступов
, ошибок в require d файлах .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...