Линтеры для начинающих
Линтер — это чистый код для ленивых
Линтеры для начинающих

Недав­но мы писа­ли про лин­те­ры: как они про­ве­ря­ют код на ошиб­ки и дела­ют его более кра­си­вым. Если корот­ко, то лин­те­ры рабо­та­ют так:

  1. Берут ваш код
  2. Фор­ма­ти­ру­ют его по задан­ным правилам.
  3. Исправ­ля­ют про­стей­шие ошиб­ки — ста­вят неза­кры­тые фигур­ные скоб­ки или про­пу­щен­ные точ­ки с запятой. 
  4. Если уме­ют — про­ве­ря­ют код на более слож­ные ошиб­ки и сооб­ща­ют о них.

Всё это — что­бы исправ­лять неак­ку­рат­но­сти за программистами. 

В этой ста­тье — при­ме­ры лин­те­ров, кото­рые мож­но под­клю­чить хоть сей­час и полу­чить чистый код уже к кон­цу прочтения. 

👉 Лин­те­ры из обзо­ра мы про­ве­ря­ли в VS Code и Sublime text 3. Для запус­ка про­вер­ки и фор­ма­ти­ро­ва­ния откры­то­го кода в VS Code нажми­те в пустом месте пра­вой кноп­кой мыши и выбе­ри­те пункт «Фор­ма­ти­ро­вать доку­мент с помо­щью…» или «Format Document With…»:

Примеры линтеров для начинающих

Beautify — линтер для HTML

Рас­ши­ре­ние для VS Code

HTML-линтер, кото­рый сле­дит за внеш­ним видом кода стра­ни­цы и фор­ма­ти­ру­ет его по задан­ны­ми пра­ви­лам. Уме­ет раз­би­вать по стро­кам несколь­ко команд, если они напи­са­ны в одной стро­ке друг за другом.

Было: стили в одну строку, комментарии на той же строке, что и команды, несколько html-тегов на строке подряд Было: сти­ли в одну стро­ку, ком­мен­та­рии на той же стро­ке, что и коман­ды, несколь­ко html-тегов на стро­ке подряд 
Стало: красиво и понятно, каждая команда и комментарий — на своей строке Ста­ло: кра­си­во и понят­но, каж­дая коман­да и ком­мен­та­рий — на сво­ей строке 

CSS

Если вы пише­те не очень боль­шой CSS-код, вам вполне хва­тит того же Beautify. Но если вы реши­ли занять­ся сти­ля­ми все­рьёз и уста­но­ви­ли CSS-препроцессор, что­бы писать код ещё быст­рее, посмот­ри­те на Beautify css/sass/scss/less.

Уже по назва­нию вид­но, что этот пла­гин рабо­та­ет не толь­ко с CSS, но и с фор­ма­та­ми всех попу­ляр­ных пре­про­цес­со­ров. Уста­нав­ли­ва­ет­ся и рабо­та­ет точ­но так же, как и осталь­ные, мож­но создать свои пра­ви­ла обра­бот­ки кода или настро­ить под себя те, что есть.

JavaScript

JSLint — один из самых ста­рых и самых стро­гих лин­те­ров для JavaScript. Он про­ве­ря­ет вооб­ще всё: 

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

Если ваш код про­ве­рил JSLint и не нашёл ни одной ошиб­ки — поздрав­ля­ем, вы постиг­ли JS-дзен.

В Sublime Text 3 JSLint подсвечивает строки с ошибкой и даёт подробное описание, что именно здесь не так В Sublime Text 3 JSLint под­све­чи­ва­ет стро­ки с ошиб­кой и даёт подроб­ное опи­са­ние, что имен­но здесь не так 

JSHint рабо­та­ет почти точ­но так же, как и преды­ду­щий лин­тер, но про­ве­ря­ет менее стро­го. Иде­аль­ный инстру­мент для тех, кто толь­ко начи­на­ет писать код — он пока­жет кри­тич­ные ошиб­ки и не будет тре­бо­вать соблю­де­ния всех кано­нов язы­ка JavaScript.

JSHint может показать все ошибки прямо в окне редактора кода JSHint может пока­зать все ошиб­ки пря­мо в окне редак­то­ра кода 

PyLint — линтер для Python

Pylint.org — самый попу­ляр­ный лин­тер для Python, кото­рый про­ве­ря­ет почти всё:

  • исполь­зу­ет­ся ли модуль, кото­рый под­клю­чи­ли в самом начале;
  • дли­ну строк;
  • как объ­яв­ля­ют­ся пере­мен­ные и функции;
  • пра­виль­но ли исполь­зу­ют­ся аргу­мен­ты при вызове;
  • син­так­си­че­ские ошибки;
  • как исполь­зу­ют­ся типы данных;
  • нет ли логи­че­ских оши­бок в коде, кото­рые могут при­ве­сти к непред­ска­зу­е­мо­му результату.

Если вам нуж­но что-то про­ве­рить в коде, ско­рее все­го, PyLint смо­жет вам помочь.

Если нажать на строч­ку с ошиб­кой, кур­сор перей­дёт к нуж­но­му участ­ку кода 

Текст:
Миха­ил Полянин

Редак­тор:
Мак­сим Ильяхов

Худож­ник:
Даня Бер­ков­ский

Кор­рек­тор:
Ири­на Михеева

Вёрст­ка:
Мария Дро­но­ва

Соц­се­ти:
Олег Веш­кур­цев