Основное, что нашел или настроил при переходе с JetBrains на VS Code. Возможно, эта заметка будет еще несколько месяцев дополняться немного по мере изучения.

Навигация

Самое главное – сочетания клавиш для навигации. Как по мне, нужно учить стандартные, а не переопределять то, что есть. Вот они:

  • Cmd+P – переход на файл, так же последние файлы показывает
  • Ctrl+G – переход на строку (Cmd+P и ввести :)
  • Shift+Cmd+O – переход на символы в текущем файле (Cmd+P и ввести @)
  • Cmd+T – переход на символы в проекте (Cmd+P и ввести #)
  • Ctrl+Tab – окно последних файлов, при нажатии без выбора переход на предыдущий файл – крайне неудобно, поменял на Opt+Shift+Enter (лучше, но без стрелки вверх/вниз при этом не работают)
  • Cmd+Shift+F – поиск в файлах проекта
  • F12 – определение функции
  • Shift+F12 – кто использует
  • Cmd+(K,Q) – переход к последнему редактированию
  • F8 / Shift+F8 – ходим по проблемам
  • Ctrl+R – открыть недавние проекты
  • Shift+Cmd+E – включить панель файлов
  • Cmd+E – переключаться между режимом AI и редактированием
  • Cmd+B – показ/скрытие левой панели
  • Cmd+L – показ/скрытие окна чата AI

В целом, оказалось, что нужно нажимать Cmd+P, дальше уже по первому символу можно выбирать режим:

  • по умолчанию по имени файла и можно добавить :123 для перехода сразу на строку
  • > – команды
  • : – строки/столбцы
  • @ – символ (переменные и функции) в текущием файле
  • # – символ (переменные и функции) в проекте

Расширение Bookmarks от Alessandro Fragnani для добавления функционала закладок – пользуюсь редко, но если уж приходится, то лучше с ним.

Так же я всегда отключаю табы:

{
    "workbench.editor.showTabs": "none",
}

и включаю автосохранение (хотя может это и дефолт):

{
    "files.autoSave": "afterDelay",
}

Поведение

  1. Дублировать строку: Shift+Option+Up or Down (копировать, но в буфер обмена не помещать)
  2. Предпросмотр Markdown: Cmd-K, V
  3. Plugins: Cmd+Shift+X
  4. Быстрое исправление: Cmd+.

Внешний вид

Это необзязательно, но первое время проще/приятнее.

Шрифт

Скачиваем: https://www.jetbrains.com/ru-ru/lp/mono/ и устанавливаем в систему (в macOS заходим в папку ttf, выделяем все файлы и в контектном меню в Finder открыть в Font Book, там жмем install 1 или 2 раза). Включаем в редакторе:

{
    "editor.fontFamily": "'JetBrains Mono', Consolas, 'Courier New', monospace",
    "editor.fontLigatures": true,
}

Тема

  1. Ctrl+Shift+P
  2. Начните набирать и выбирите Install Extension
  3. Напишите Darcula
  4. Установите Darcula Theme (от rokoroku)

Дополнительно

Переформатирование при сохранении:

  1. Command+, и выбираем Editor: Format On Save
  2. Настраиваем форматтер. Для примера ESLint (конечно, нужно установить extension до этого):
    {
      "editor.codeActionsOnSave": {
        "source.fixAll.eslint": "explicit",
      },
      "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "vue", "html", "json"],
    }

Доставляем приложения:

  • ClipNinja – для меню вставки. Из плюсов работает по всей системе, не только в IDE. Из минусов: для Windows и Linux нужно будет что-то искать.

Доставляем основные плагины:

  • SonarQube for IDE – для валидаций
  • REST Client (humao) – для .http-файлов

Я не пишут тут очевидные плагины для отдельных языков.

.http-файлы

Основное отличие в том как хранятся переменные. В Jetbrains 2 отдельных файла: для обычных переменных и для ключей. Здесь нужно добавлять переменные в settings.json проекта.

С ключами довольно просто: кладем в .env (в той же папке, что и http файл), и ссылаемся: {{$dotenv STAGE_TOKEN}}. Неудобно, если файлы разложены по папкам.

C окружениями проще, просто специфично.

В целом, полноценная поддержка есть, но в деталях несовместима. Не получится одновременно пользоваться из JetBrains и VS Code, что в коллективе может стать проблемой.

Как заключение

Все что хочется находится довольно быстро. Немного по другому, но каких-то изъянов не видно.

Для чистоты эксперимента можно сказать, что в Idea лучше реализовано дублирование файлов: в окне переименования можно вызвать функцию Toggle Case, например. Здесь же Toggle Case без плагинов нет (плагины не искал), есть отдельные виды изменений и они не висят на горячих клавишах по умолчанию. Предполагается через Cmd+P их по мере надобности вызывать.