На случай, если в топик придут пользователи vscode — а можете рассказать, чем он лучше webstorm? А то у меня он стоит у пары коллег (примерно столько же пользуются саблаймом), но аргументации использования или каких-то киллер фич не заметил.

Для меня это запуск нужного теста, отображение покрытия прямо в коде, навигация по директивам, компонентам и фильтрам из шаблона (это чисто для ajs проектов)

Для начала это бесплатно. И еще я не разработчик, а админ-многостаночник, поэтому мне удобно в одном редакторе написать автоматизацию на PowerShell, отредактировать markdown файл проекта Git, а потом отредактировать легаси скрипт на VBScript и всё это в одном знакомом мне окружении.
Бесплатно это да. Но насчёт всяких разметок — webstorm поддерживает и шелл скрипты и маркдаун. Насчёт вбскрипта не в курсе, не требовалось.
Помимо перечисленного, стоит отметить скорость работы по сравнению с webstorm, vscode куда шустрее и удобнее в использовании. А огромное количество плагинов позволяет сделать из него практически полноценный IDE.
А у вас линтинг включен? У коллег VSCode умирает на линтинге файле на 1000+ строк с большим количеством ворнингов.
Время фиксить ворнинги
  • 4000+ файлов в проекте;
  • многие из них по 2-4к строк;
  • многие из ошибок это не просто форматирование, которое исправляется нажатием хоткеев, а сложные штуки, над которыми надо медитировать...
  • фиксить сразу всё — значит, потерять напрочь историю авторства фрагментов кода.

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

Функционал не сильно уступает WebStorm(с учётом плагинов), при этом менее требователен к ресурсам(тут, правда, тоже зависит от плагинов), бесплатен и поддерживает много разных языков. Я, например, пишу на C#, Python, Go и Rust для бекенда и на Angular и React для фронтенда. Кроме того, часто балуюсь с кучей других языков. Ставить несколько IDE не очень хочется, когда можно обойтись одной.

А поддержка многих языков включает в себя пошаговую отладку? Или речь просто о подсветке синтаксиса?

Ну js, c# и питон точно можно отлаживать
Плюсы вроде тоже можно.
Вот у меня примерно так же с Jetbrains средами выходит — есть несколько сред, которые выглядят и ведут себя абсолютно одинаково — phpStorm, webStorm, dataGrip, Android Studio, даже из Visual Studio выходит более-менее нормальная IDE при установке Rider.
а чем webstorm лучше? VSCode Быстрый, мощный, удобный, бесплатный

вся мощь продуктов JetBrains (при условии хорошей поддержки экосистемы) — "контекстный интеллект". простейший пример — подсветка ошибок и автодополнение, которые в случае VSCode и SublimeText в основном подсказывают текстовые совпадения и базовые ошибки в синтаксисе, в то время как IntelliJ (и его производные) подсказывают наиболее подходящие варианты дополнения в данном контексте и предлагают возможности для рефакторинга на лету. не уверен, что одними плагинами можно достичь подобного уровня "осведомленности" редактора...


возможно устаревшее мнение (последние несколько лет работаю преимущественно с IntelliJ), но по крайней мере раньше было именно так и в WebStorm в том числе.

В vscode от языка зависит. Для JavaScript/TypeScript и ошибки подсвечиваются, и автодополнение хорошее, и всякие Go to definition. А, например, для руби уже похуже поддержка. В общем надо конкретный язык смотреть. И при помощи плагинов можно действительно много реализовать.

Мнение устаревшее. VSCode из кожи вон лезет чтобы дать осмысленные подсказки. Я использую VSCode для работы с React, он отлично справляется с подсказками функций класса, параметров статичных объектов, переменных итд. Когда Atom просто подгадывает по имени, VSCode подсказывает как Webstorm. В связке с Typescript VSCode вообще отлично работает (но это не удивительно, продукты Microsoft). Сам пользовался VSCode, Webstorm, Atom и SublimeText, всегда предпочитал Webstorm как раз таки из-за контекстных подсказок, но уж больно неповоротливый он, очень тормозит и ест ресурсы. VSCode относительно легкий и умный редактор.

Вопрос по поводу JetBrains. Что если я захотел подключить какой-нибудь custom-ный plugin к babel? Например поддержку |> или что-нибудь ещё более новое/своё. Не получится такого, что, скажем нужно пару лет подождать поддержки decorator-ов, for await *, |>, ::, чего-нибудь ещё, потому что мне половину кода мажет как ошибку, линтер сходит с ума, автокомплит умер, и работать невозможно.


^ не троллинг, я не пользовался продуктами JetBrains и мне правда интересно. В ST3 мне достаточно написать линтер для eslint (или взять готовый), и подправить подсветку синтаксиса (если она сломалась). И то и другое идёт отдельно от редактора, и можно обновлять хоть каждый день. Например сделать пулреквест в репозиторий автора плагина.

А что мешает для WebStrom-а кастомный eslint дать?

Понятия не имею. Я потому и спрашиваю. Как там с конфигурируемостью и расширяемостью. И не нужно ли для этого писать на Java/Kotlin? Могу я просто взять и конфиг eslint-а расширить? Или всё равно редактор "расползётся"?

Webstorm (и другие продукты JetBrains соответственно) поддерживает все последние нововведения Javascript, включая еще не утвержденные proposals, например декораторы, или приватные поля через #.


for await и :: тоже поддерживаются, |> — нет.


Найти какое-то подробное описание с полным списком не получилось, документация про это очень скудная.

Может быть prigara сможет рассказать про отношение разработчиков к новым фичам и можно ли самому написать плагин для поддержки новых (или нестандартных) синтаксических конструкций.

Добрый день!
Мы стараемся поддерживать proposals на этапе 3. Некоторые proposals добавляем раньше, если есть спрос благодаря хорошему Babel-плагину. Поддержку предложений на стадии 1 стараемся не делать — слишком уж часто меняется синтаксис.
Страницы с полным списком поддержанных proposals нет, но можно следить за задачами с тегом ES7 (знаем, что не очень правильное название тега, но так уж сложилось) на нашем трекере.
Делать плагины для поддержки нестандартного JS-cинтаксиса у нас и правда непросто, но мы готовы помогать советом.

с другой стороны не скажу что в мире IntelliJ (и производных) все гладко и единорожки с радугами — поддержка той же scala в intellij отвратительна. а множество плагинов либо безнадежно заброшены авторами, либо работают из рук вон плохо. хотя, наверное, то же самое можно сказать про комьюнити-плагины для любого инструмента =)

Апдейты выходят каждую неделю, всегда последние версии плагинов. Легко самому подправить какой-нибудь плагин. Все на JS

Поставил себе пару дней назад webstorm. Пока не понял, почему все так хвалят эту IDE. У меня vscode из коробки автоматически подтягивал типы ts. Т. е. если я писал такой код:
foo = (ctx: context) => {...}, то vscode сам дописывал в самом верху такое:
import {context} from 'koa'.

Ну и плагин для ноды показался мне умнее в плане автодополнения, чем webstorm.

Но опять же. Оговорюсь, что я особо не копался в настройках webstorm.
Кроме того, Visual Studio Code очень быстро запускается (2-3 сек), это бывает незаменимо, когда нужно просто отредактировать пару строк в разбросанных по диску проектах, запустить SQL-скрипт, допилить PowerShell файл, посмотреть CSV. IDE слишком медленна для подобного рода операций.
Для этого обычно использую Kate или mcedit, время запуска — 0 секунд…
Есть нюанс. VS Code стартует как текстовый редактор, после чего умнеет с каждой секундой, превращаясь, в конечном итоге, в IDE: в начале есть подсветка синтаксиса и поиск, можно запускать задачи, компилировать, использовать встроенный терминал, а где-то через 20 секунд появляется автоподстановка, можно дебажить и рефакторить. Есть люди, которым это нравится.
а где-то через 20 секунд

А у вас HDD или SSD? Оно на SSD так долго просыпается?

SSD пятилетней давности. Время запуска зависит от языка(ов)/объема рабочего пространства. Желающие могут сами сравнить со «своей любимой IDE».
Странно что не указан ESLint (либо JSHint, TSLint) — или это считается как должно быть по умолчанию?
Так же не помешают Beautify (чтобы приятнее было смотреть на чужой код).
Code Spell Checker — Помогает избегать глупых ошибок в названиях переменных, классов, методов и т.п.
Последний — очень неожиданная находка, спасибо.
VSCode — это не только для JS/Typescript. У меня стоят плагины для CSS, заметно помогающие с ним работать — CSS Peek (есть аналог - IntelliSense for CSS class names in HTML) и Post​CSS Sorting (с кастомными настройками, по умолчанию он пустой). Кроме них, используется еще Run On Save для выполнения тасков при сохранении определенных файлов. Ну и про js-beautify + ESLint тут уже написали выше.

Добавлю ещё отличные плагины:


  • Color Highlight — показывает цвет цвета прямо в редакторе
  • EditorConfig — для поддержки одноименного формата
  • PlantUML — диаграммы прямо в редакторе
  • Script Commands — если лень писать свои плагины, можно цеплять абсолютно любые собственные скрипты к редактору
    Главное, что нет необходимости ставить 3 IDE, если время от времени нужно править код на Java/JavaScript/ObjectiveC/C++.
Никто не встречал плагин, который импорты в тайпскрипте переписывает на прямые?
Когда есть index.ts, и хочется что то импортнуть из соседнего файла, то автоимпорт автоматически прописывает import {myFunction} from '.'
а нужно чтоб было import {myFunction} from './myFunction'

а то как то уже поддостало бороться с циклическими импортами.
это кроссплатформенный редактор с открытым исходным кодом

А можно таки ссылку на исходный код самого редактора? Или, хотя бы встроенных расширений? Пруф линк для неверующих так сказать.

А вот если не проблемы с ценой (msdn Subscription ), хорошая ли идея для проекта nodejs использовать vs2017? После c# ну все раздражает в vscode…
Хм, добавив все ваши расширение(без сомнения хорошие) у меня VS стал есть 2,98 ГБ ОЗУ.

У меня Андроид студия столько же жрет, и никаких расширений ставить не пришлось:) Если мы говорим про экономию памяти — однозначно vim. Или Geany, он память не жрет и довольно много из коробки умеет.

Мы не говорим о экономии памяти, я просто описал факт не указанный в статье. Т.к возможно кому то, как мне например, такое потребление ОЗУ неприемлемо.

Мне Chrome хватает))

ИМХО

P.s я не использую Chrome в качестве редактора кода, хотя у них реализован функционал для редактирования файлов.

Могу порекомендовать ещё моё расширение для работы с webassembly — vscode-wasm. Подсвечивает синтаксис и умеет конвертировать wasm в wat и обратно.

Только полноправные пользователи могут оставлять комментарии.
Войдите, пожалуйста.