Sublime Text: валидация синтаксиса, автодополнение

от автора

Заметил у себя на работе, что многие фронтенд-разрабочтики до сих пор используют «голый» Sublime Text, матерясь и чертыхаясь после каждой пропущенной запятой, непарной скобочки или еще какой опечатки. Поэтому написал краткий гайд по исправлению этого недоразумения, которым с вами и делюсь. Итак:

Подсветка синтаксических ошибок

картинко

  • Установите jsl с помощью brew install jsl или вручную отсюда
  • Запустите Sublime
  • Установите Package Control: https://packagecontrol.io/installation
  • Перезапустите Sublime
  • Нажмите Cmd-Shift-P, наберите Install, выберите Package Control: Install Package
  • Подождите, пока загрузится список пакетов, выберите SublimeLinter
  • Перезапустите Sublime
  • Повторите Cmd-Shift-P → Install Package, выберите пакет SublimeLinter-jsl
  • Перезапустите Sublime

Чтобы выключить подсветку некоторых бессмысленных и назойливых ворнингов, достаточно положить в корень проекта файл jsl.conf с конфигом, возможные опции можно посмотреть написав в консоли jsl -help:conf. Я юзаю следующий конфиг:

-missing_semicolon -trailing_comma_in_array -ambiguous_newline

Автодополнение с выводом типов

картинко

Установите Tern for Sublime (инструкции по установке по ссылке). Это плагин для Sublime, осуществляющий интерфейс с Tern — инструмент для «умного» автодополнения в JavaScript, базирующемся на выводе типов (type inference). После установки обратите внимание на дополнительные опции конфигурации (включающие хинтинг аргументов функций, например), они задаются в меню Sublime Preferences → Package Settings → Tern → Settings — Default.

Затем создайте в корне проекта файл .tern-project. Структура его примерно следующая:

{   "libs": [     "browser",     "jquery",     "underscore"   ],   "loadEagerly": [     "./some_folder/*.js"   ] }

В loadEagerly указываются файлы/папки (он понимает wildcards), которые нужно парсить. К сожалению, если указать там все-все-все скрипты (в моём случае), то Tern зависает намертво. Поэтому будьте осторожнее с этим, включайте только то, что необходимо.

Массив libs задает список предопределенных библиотек, которые Tern понимает без необходимости их парсить — с помощью заранее сгенерированных/написанных вручную словарей типов. Вот тут можно почитать про то, как это у него устроено. Библиотека browser означает набор встроенных API браузера.

ссылка на оригинал статьи https://habrahabr.ru/post/278747/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *