Введение
По разным причинам, которые известны лишь… всем, программисты в России всё меньше пользуются WebStorm. Недавно ко мне пришли ребята с вопросом, как жить на VS Code. Они знали, что несмотря на возможность установить корпоративный WebStorm, я оставался приверженцем бесплатного vscode.
Эта заметка составлена из сообщений, в которых я рассказывал, как использую VS Code.
Надеюсь, она будет полезна тем разработчикам, которые сейчас находятся в состоянии фрустрации. Многие сидели на PyCharm и CLion ещё с универа. Взять и резко сменить инструмент на что-то другое непросто.
JetBrains давал бесплатные лицензии, чтобы подсадить ни о чём не догадывающихся студентов на капиталистическую иглу платных подпи… Проклятые капиталисты, они меня до могилы доведут!
Короче, факт остаётся фактом, Джетбрейнс больше нет. Но мы не какие-то там пфф… любители! И можем собрать IDE из чего угодно! А самый быстрый и простой способ - это установить VS Code и накинуть на него плагины.
Плагины
- Какие-то базовые вещи
- Better Comments - симпотно подсвечивает комменты с TODO, ?, !;
- GitLens - работа с git;
- GitGraph - работа с графом git;
- Git changelists manager - полезно, когда подсовываешь, какие-то данные для работы, которые не должны оказаться в истории гита, например, хэши или временные стабы для разработки, экран какой-то надо врубить в сложном флоу;
- Markdown Preview Enhanced - можно смотреть прёвью MD файлов;
- Prettier - форматировние кода на кнопку или при сохраненнии. Это не только JS тема, может быть полезно для GraphQL, JSON штук;
- Material Icon Theme - в боковом меню файлам и папкам с определёнными именами будет присвоен значок;
- Code Spell Checker - проверяет грамотность на инглише, с банковскими терминами мастхэв;
- Russian Spell Checker - то же, но для русского языка;
- Batch Rename - когда скопом нужно что-то переименовать;
- Live Share - шарить свой код и прогать вместе;
- Bookmarks - когда нужно тыкаться в несколько мест в большой кодовой базе и не забыть, куда тыкался;
- DotENV - подсветка синтаксиса для .env файлов;
- Front-end
- Pretty TypeScript Errors - человекочитаемые TypeScript ошибки;
- Javascript Booster - всякие полезности для JS косметического рефакторинга;
- CodeMetrics - считает цикломатическую сложность и количество строк кода, подсвечивает те методы, у которых метрика отстойная. То есть его нужно переписать, разбить, упростить;
- Jest Runner - жизненно необходимо при TDD, ты переписываешь код, при сохранении сразу же видишь, что тесты зеленеют и двигаешься дальше;
- Back-end
- Go - поддержка Go;
- Go struct tag - заполнятор тэгов для структур, полезно для мапинга в json, например;
- GraphQL: Language Feature Support - валидация и автокомплит;
- GraphQL: Syntax Highlighting - подсвечивает синтаксис для GraphQl;
- SQLTools - менеджер БД;
- SQLTools PostgreSQL/Cockroach Driver - вместе с предыдущим заменяют DataGrip от JetBrains;
- AI
- IntelliCode - всякие подсказки, которые берутся прямо из GitHub;
- Tabnine - очень мощный Ai генератор. Мне лично задачи стало в два раза быстрее делать;
- Codeium - AI автоподсказки, чат и помощник в рефакторинге;
- Для новоприбывших c WebStorm
- JetBrains IDE Keymap - всем, кто привык к шорткатам. Вообще, в документации есть шорткаты и из других редакторов;
- JetBrains Icons Enhanced - иконки;
- JetBrains Mono - шрифт Mono;
- JetBrains Darcula Theme - привычная цветовая палитра;
Про merge-конфликты
Я использую для этого уже очень давно Sublime Merge, но есть восьмиминутное видео с официального канала vscode, которое должно закрыть 90% вопросов того, как это делать прямо в IDE.
Ещё Штуки
Vscode в проектах смотрит в папку .vscode
, где есть разные конфиги специфические для проекта.
Я кладу к проектам тему, которую хочу на них использовать. Чтобы можно было быстро переключаться между проектами и на уровне подсознания ориентироваться, где ты сейчас находишься. Мне лично сильно помогает при чтении кода.
Для этого в .vscode/settings.json
нужно положить:
Горячие клавиши
Майкрософт написали неплохую документацию на эту тему и подсказки для Macos и Windows. От себя добавлю, что я чаще всего использую эти шорткаты:
f2
- переименовать переменную;cmd + d
- найти совпадения в файле и поставить каретку;alt + click
- расставляет каретки в выбранные места;cmd + p
- найти какой-либо файл;cmd + b
- скрыть/показать панель навигации;cmd + w
- закрыть таб;cmd + j
- открыть терминал;cmd + \
- разделить файл на несколько редакторов;
Пара слов о том, почему мне норм на VS Code
Мой первый редактор я открыл для себя в 14 лет. Это был стандартный блокнот windows, на нём я написал свой первый сайт, и его функционала было для меня более, чем достаточно.
Кстати, из-за того, что Narod перешёл к Ucoz я так и не смог вернуть доступ к личному кабинету и он, кажется, навсегда остался в интернете. Вы можете зайти и покринжевать с того, какие я тогда писал амбициозные слоганы и выставлял внушающие ценники на разработку.
В школе мы писали на Notepad++ и turboPascal. Подсветка ключевых слов это уже было большое продвижение.
Позже я открыл для себя Adobe Dreamweaver, но действительно надолго задержался на Sublime Text, который увидел в уроках “JavaScript Джедай” от Sorax.
Чёрт, как же это было хорошо! Нас всегда учили не судить о книге по обложке, но это было по-настоящему впервые красиво, быстро, удобно. Он был хорош всем:
- подсветка синтаксиса;
- поддержка vim;
- конфиг настроек в одном файле;
- куча кастомных тем.
Его не нужно было крякать, особо разбираться, как он устроен, просто пиши код.
Позже в Политехе чего только не было. Пришлось вернуться к TurboPascal, попробовать XCode и Eclipse, MS Visual Studio, nano, vim. Но в домашних проектах я всё равно использовал Sublime Text.
Когда я пришёл на свою первую работу, мне предложили установить VS Code. Моя реакция была что-то типа:
Quote
Это та хрень с лабораторных у Молодякова? Ни за что.
Мне объяснили, что это вообще другой продукт, и по сути, похож во много м на Sublime, только есть тонна полезных плагинов. Я подумал: “Почему бы и нет”, - и на 5 лет завис в этом редакторе.
Подводя итог, хочу сказать, что я не особо прихотлив в выборе IDE. Не исключено, что и от VS Code придётся отказаться, но для разработчика, дизайнера, просто ищущего человека это никогда не будет проблемой.
Neovim
Ещё рекомендую ознакомиться со статьями Алексея Агапова про то, как он пробовал перейти с Xcode на Neovim:
Вдохновляют
- Свобода от продуктов по подписке и мощь свободного программного обеспечения
- Клинт Иствут и Серджио Леоне