Что нового в RubyMine 2021.2

Новые возможности для работы с Ruby и RBS, улучшенное автодополнение кода, поиск и рефакторинг, улучшения в редакторе, поддержка VCS, Space, Code With Me и многое другое.

Ruby и RBS

Улучшенный поиск и рефакторинг

Улучшенный поиск и рефакторинг

Теперь функции Go to declaration и Find usages, а также рефакторинг Rename работают точнее на проектах с использованием RBS. RubyMine использует объявления .rbs, чтобы определить, как сущности проекта соотносятся друг с другом, вместо того, чтобы описывать все возможные варианты использования.

Переход между файлами Ruby и RBS

Переход между файлами Ruby и RBS

Теперь можно переходить между соответствующими файлами .rb и .rbs, используя новые действия. Щелкните правой кнопкой по сущности проекта, например, по классу или методу, и выберите Go to / Type Signature | Associated Declaration. Можно также использовать сочетание клавиш Ctrl+Alt+Home.

Улучшенная помощь при написании кода Ruby

Улучшенная помощь при написании кода Ruby

RubyMine использует сигнатуры RBS для определения типов элементов Ruby и более эффективного автодополнения кода. Теперь RubyMine поддерживает большинство сущностей RBS, в том числе переменные типа, параметры блоков, типы кортежей, типы процедур и т. п.

Для тех частей кода, у которых нет соответствующей сигнатуры RBS, RubyMine использует собственный вывод типов.

Новые инспекции

Новые инспекции

Доступ к информации, которая хранится в файлах .rbs, позволяет RubyMine проверять код Ruby на большее число возможных ошибок. RubyMine отобразит ошибку типа при несоответствии RBS и кода Ruby. Кроме того, в этой версии появились новые инспекции самих файлов .rbs, в том числе на корректность кода и неразрешенные ссылки. Также RubyMine поддерживает выполнение команд Steep с помощью функции Run anything.

Улучшенный редактор RBS

Улучшенный редактор RBS

В новой версии есть все необходимые возможности, которые облегчают чтение кода RBS: подсветка синтаксиса, форматирование, автоматические отступы, сворачивание кода, структурный вид и комментирование по сочетанию клавиш Ctrl+/.

Помощь при написании кода в файлах RBS

Помощь при написании кода в файлах RBS

Теперь RubyMine предлагает помощь при написании кода во время работы с файлами RBS: автодополнение кода, поиск использований, навигацию по коду, рефакторинги переименования и т. п. Кроме того, можно создать прототипы .rbs и собственные шаблоны Live Templates для RBS.

Редактор

Улучшенные описания инспекций и быстрых исправлений

Улучшенные описания инспекций и быстрых исправлений

Мы обновили описания для всех инспекций и быстрых исправлений, которые может выполнить RubyMine. В обновленных описаниях объясняется, какие изменения предлагает соответствующая инспекция и почему. В некоторых инспекциях даны примеры использования.

Действия при сохранении кода

Действия при сохранении кода

Теперь RubyMine поддерживает выполнение определенных действий при сохранении изменений — например, переформатирования кода. Все действия, которые можно запустить при сохранении изменений, перечислены в Preferences / Settings | Tools | Actions on Save.

Подробнее

Быстрое создание скретч-файлов

Быстрое создание скретч-файлов

В скретч-файлах можно делать заметки или наброски кода вне контекста проекта. Начиная с этой версии, можно выделить фрагмент кода, нажать Alt+Enter и быстро создать новый скретч-файл с этим фрагментом, выбрав Create new scratch file from the selection.

Взаимодействие с IDE

Текстовый поиск по версиям Local History

Текстовый поиск по версиям Local History

Local History помогает непрерывно отслеживать изменения в проекте независимо от системы контроля версий. В этой версии мы добавили в Local History функцию поиска. Теперь нужное изменение стало проще найти, если вы помните хотя бы пару ключевых слов.

Указание нескольких вариантов года регистрации авторских прав

Указание нескольких вариантов года регистрации авторских прав

Теперь в уведомление об авторских правах на проект можно включить и год создания, и год текущей версии. Обновленный шаблон с двумя датами доступен в Preferences/Settings | Editor | Copyright | Copyright profile.

Дополнительные настройки

Дополнительные настройки

Мы добавили новый узел в Preferences | Settings – Advanced Settings. Он содержит несколько параметров для отдельных сценариев использования, сгруппированных по инструментам IDE. Например, настройки для Project View, Startup, Terminal и т. п.

Перезагрузка страниц браузера при сохранении

Перезагрузка страниц браузера при сохранении

Теперь браузеры могут автоматически перезагружать страницы после сохранения изменений в соответствующих файлах HTML, CSS и JavaScript.

Упорядочивание окон с помощью перетаскивания

Упорядочивание окон с помощью перетаскивания

Теперь нужное окно можно просто перетащить в удобное место — как внутри основного окна IDE, так и в отдельное окно.

Новый вариант навигации в Preferences/Settings

Новый вариант навигации в Preferences/Settings

Теперь можно свободно переходить между различными открытыми разделами Preferences/Settings, используя стрелки в правом верхнем углу окна.

Отладчик

Вкладка предварительного просмотра в отладчике

Вкладка предварительного просмотра в отладчике

В новой версии на вкладке предварительного просмотра появляются файлы, открытые во время отладки. Вкладка одна, поэтому файлы появляются по одному. Чтобы включить эту функцию, поставьте флажок Enable preview tab в разделе Preferences/Settings | Editor | General | Editor Tabs | Opening Policy.

Терминал

Новые возможности терминала

Новые возможности терминала

Мы добавили во встроенный терминал две новых возможности: выбор формы курсора и поддержку функции Use Option as Meta key. Оба параметра находятся в разделе Preferences/ Settings | Tools | Terminal.

Управление версиями

Изменения проверок перед коммитом

Изменения проверок перед коммитом

Теперь перед коммитом можно выполнить ряд новых действий: Run Tests, Analyze code и Cleanup. Ход выполнения и результаты всех предкоммитных проверок отображаются в поле Commit без появления дополнительных модальных окон.

Подробнее

Цифровая подпись GPG

Цифровая подпись GPG

Теперь безопасность коммитов можно обеспечить, подписав их ключом GPG. Включить эту функцию можно в меню Preferences / Settings | Version Control | Git. If it’s your first time using a GPG key, you’ll need to configure it. Если вы хотите использовать настроенный ранее ключ GPG, выберите его из выпадающего списка.

Единообразное поведение для действия Show Diff

Единообразное поведение для действия Show Diff

В новой версии RubyMine различия между исходными и измененными файлами по умолчанию отображаются прямо в редакторе, независимо от того, как вы вызываете действие Show Diff. Если вы предпочитаете отслеживать изменения в отдельном окне, можно перетащить нужный файл из редактора. IDE запомнит это и в будущем будет открывать diff в отдельном окне.

Space

Статусы заданий Space в журнале Git

Статусы заданий Space в журнале Git

Мы добавили значки статусов заданий Space на вкладку Log окна Git, чтобы можно было быстро отследить ход выполнения задания, посмотрев в список коммитов. При нажатии на значок откроется всплывающее окно с автоматической информацией о задании.

Чтобы включить или отключить показ информации о статусе, нажмите на значок глаза на вкладке Log и выберите Show Columns | Space Automation.

Упоминания коллег в ревью

Упоминания коллег в ревью

Теперь можно держать коллег в курсе происходящего, упомянув их в ревью Space прямо из RubyMine. Введите @ и имя во временной шкале или в комментариях к коду, а затем выберите нужного человека в списке.

Отображение веток в ревью кода

Отображение веток в ревью кода

Теперь можно просматривать ветки, относящиеся к выбранному ревью кода. На вкладке Details отображается список веток, в которые были сделаны коммиты при работе над текущей задачей.

Code With Me

Синхронизация автодополнения кода

Синхронизация автодополнения кода

При работе с Code With Me может потребоваться объяснить проблему или показать другим членам команды разные части проекта. Это можно сделать в режиме Force Others to Follow You. В этом случае те, кто наблюдает за вашей работой, увидят предложения автодополнения кода, которые вы используете.

Веб-разработка и фреймворки

Автоматический импорт для require()

Автоматический импорт для require()

Знаете ли вы, что IDE умеет добавлять отсутствующие операторы импорта при вводе ES6-символов? Теперь то же самое возможно для модулей CommonJS: при автодополнении кода будет вставлен оператор require.

Рефакторинг Rename для React useState hooks

Рефакторинг Rename для React useState hooks

Вам больше не нужно тратить время на рефакторинг отдельных значений и функций useState в React hooks — RubyMine переименует их самостоятельно. Чтобы использовать эту функцию, установите курсор на значение состояния и вызовите рефакторинг Rename сочетанием клавиш Shift+F6 или через контекстное меню Refactor | Rename.

Другие улучшения

  • В macOS проще писать код с включенным режимом инструмента чтения с экрана. Теперь список доступных вариантов автодополнения кода зачитывается вслух. Кроме того, теперь можно услышать выбранный пункт в поле со списком и весь список целиком. Исправлено озвучивание результатов действия Search Everywhere.
  • Анализ кода работает правильно, подсветка не прекращается во время обновления файловой системы.
  • Теперь RubyMine поддерживает выполнение тестов с определенным покрытием на проектах с использованием SSH и Vagrant, помимо локальных интерпретаторов Ruby.
  • RubyMine автоматически очищает директории кэша и журналов, обновлявшиеся более 180 дней назад. Этот процесс не затрагивает настройки системы и директории плагинов. Процесс можно запустить вручную в меню Help | Delete Leftover IDE Directories.
  • Вы больше не пропустите критически важные обновления продуктов в JetBrains Toolbox App. RubyMine сообщит, что можно скачать новую версию, и предложит ее установить. Эта функция будет работать с JetBrains Toolbox App 1.20.8804 или более поздних версий.
  • Мы продолжаем повышать скорость реагирования интерфейса и бороться с зависаниями. В частности, мы вынесли из потока пользовательского интерфейса некоторые операции, требующие индексирования, и это позволило избавиться от зависания в ряде ситуаций.
  • Мы упростили диалоговое окно, позволяющее менять значок проекта.
  • Начиная с этой версии пользовательский интерфейс RubyMine полностью локализован на китайский, корейский и японский. Локализованный интерфейс можно скачать в виде плагинов с отдельными языковыми пакетами, которые легко установить в IDE.
  • Узел, где хранятся изменения до коммита, раньше назывался Default Changelists. В версии 2021.2 мы переименовали его в Changes — название стало проще и понятнее. Это изменение распространяется на все новые проекты.
  • RubyMine больше не добавляет автоматически списки изменений к операциям Git. Например, при выполнении команды cherry-pick список изменений создаваться не будет.
  • Теперь самая ранняя версия Git, которую поддерживает IDE — v2.17. Мы внесли это изменение, поскольку сейчас версия 2.17 — самая ранняя, для которой еще выпускаются обновления безопасности.
  • Недавно Code With Me запустил два новых сервера ретрансляции: один на западном побережье США, второй — в ЮАР. В результате время отклика сократилось почти втрое, и теперь расположенные там команды могут вести совместную работу в JetBrains IDE со скоростью мысли.
  • Чтобы продлить время работы ноутбука от аккумулятора, можно включить режим экономии электроэнергии. Просто щелкните правой кнопкой на строке состояния и выберите в контекстном меню Power Save Mode.
  • Автодополнение кода теперь работает и для частных npm-пакетов.
  • Теперь RubyMine предлагает полную поддержку синтаксиса TypeScript, используемого в комментариях JSDoc в файлах .js.
  • Теперь RubyMine поддерживает популярные библиотеки classnames и clsx. Благодаря этому можно эффективнее использовать имена классов CSS.
  • Новая версия RubyMine предлагает автодополнение имен классов и динамически вычисляемых значений атрибутов className в компонентах Tailwind CSS.