2012-03-23 3 views
4

Этого небольшой CoffeeScript содержит опечаткуЕсть ли способ, чтобы поймать опечатки при написании CoffeeScript

drinks = "Coffee" 
drinks = drinks + ", " + "Tea" 
drinsk = drinks + ", " + "Lemonade" 
alert drinks 

намерения состояло в том, чтобы предупредить «кофе, чай, лимонад», но результат вместо «Кофе, чай». Сгенерированный JavaScript все еще действителен и передает JSLint; он объявляет переменные перед использованием, которые хороши, но его неправильные переменные.

var drinks, drinsk; 
drinks = "Coffee"; 
drinks = drinks + ", " + "Tea"; 
drinsk = drinks + ", " + "Lemonade"; 
alert(drinks); 

Если же пример был написан на простом JavaScript, то JSLint бы поймать ошибку:

var drinks; 
drinks = "Coffee"; 
drinks = drinks + ", " + "Tea"; 
drinsk = drinks + ", " + "Lemonade"; 
alert(drinks); 

------------------ 
Problem at line 4 character 1: 'drinsk' was used before it was defined. 
drinsk = drinks + ", " + "Lemonade"; 

На вопрос: Есть ли способ, чтобы ошибки я сделать так, что я могу Найди их? Мне бы очень хотелось, чтобы инструменты, подобные JSLint, все еще работали.

Также попробовал http://www.coffeelint.org/, и он сообщает мне: «Ваш код не содержит ворсинок!»

ответ

4

Вы можете использовать IDE, которая поддерживает проверку орфографии идентификатора, например IntelliJ IDEA, у которой BTW есть плагин для редактирования CoffeScript.

+0

Спасибо за вход, чем раньше вы найдете эти ошибки, тем лучше. Попробуем редактор, как только я получу более быструю линию. – eolsson

+0

Просто попробовал IntelliJ, и из того, что я вижу, он думает, что и «напитки», и «drinsk» являются переменными (курсивный шрифт и фиолетовый цвет), также есть зеленый квадрат в верхнем левом углу (ошибок не обнаружено). – eolsson

+0

В IntelliJ есть средство проверки орфографии, которое должно добавить зеленую волну под неправильно написанным словом. Что-то вроде этого: http://blog.novoj.net/binary/2010/11/dictionary-before.png –

2

Я бы решил это, написав спецификации для вашего JavaScript. Инструменты типа Lint великолепны, но есть еще много других ошибок, которые вы можете сделать.

Лично я использую jasmine через жасмин безголового-WebKit для этого

+0

, в то время как модульные тесты важны, это не вся история. Инструмент, похожий на линт, станет полезным дополнением к CoffeeScript. –

+0

Да, также будут использовать тесты, но я думаю, что в этом случае компилятор делает неправильно. Понятно, что 'drinsk' присваивается и никогда не читается, поэтому нет смысла делать его переменной. – eolsson

+0

Я не буду утверждать, что такие вещи, как предупреждения о неиспользуемых переменных, не очень хороши! –

Смежные вопросы