Компиляция кофескрипта

Ставим пакет coffee-compile.

apm install coffee-compile

Выделяем произвольный фрагмент кода, нажимаем Ctrl + Alt + c и справа открывается вкладка со скомпилированным кодом. Очень удобно, когда не уверен, во что превратится твой код после компиляции.

Пример работы пакета coffee-compile

Линтинг

Линтинг - это статическая проверка кода на ошибки. Статическая, потому что анализируется сам код еще до момента компиляции.

Для линтинга я использую два пакета: один для проверки кода на соответствие заданному стилю, другой для проверки необъявленных переменных.

Проверка на соответствие стилю

Пример работы пакета linter-coffeelint

Помогает сделать код единообразным: пробелы после запятых, правильные отступы, отсутствие пустых функций, одинаковые кавычки.

Для первой задачи используется coffeelint. Все просто - описываем в файлике coffeelint.json правила, которые нам важны, далее, если что-то не так, встроенный в атом линтер нас предупредит. Ставим пакет linter-coffeelint.

apm install linter
apm install linter-coffeelint

Также ставим сам кофелинт:

npm install -g coffeelint

Далее надо указать линтеру набор правил. Для этого закидываем в папку проекта файл coffeelint.json. Пример моего конфига можно посмотреть в гисте.

Проверка необъявленных или неиспользуемых переменных

Пример работы пакета linter-coffeelint

Для решения второй задачи ставим пакет linter-coffee-variables.

apm install linter-coffee-variables

Под капотом этот пакет на лету компилирует кофескрипт и проверяет его через другой линтер - ESLint. Глобальные переменные можно объявить через globals:

### globals myVar anotherVar ###
console.log myVar

Табуляция, ее ширина, завершающие пробелы

Несколько правил общей гигиены текстового файла, которыми я пользуюсь:

  • Строки не должны завершаться пробелами
  • В конце файла одна пустая строка
  • Для отступов используются пробелы
  • UNIX-style перенос строки
  • Кодировка UTF-8

Все эти правила можно формализовать с помощью эдиторконфига. Это такой конфиг, который пишется один раз, а потом может быть перенесен в любой редактор с поддержкой этого формата.

Ставим пакет editorconfig:

apm install editorconfig

Далее закидываем в папку проекта файл .editorconfig. Пример моего конфига можно посмотреть в гисте.