Что нового в RubyMine 2022.2

Расширенная поддержка Rails, RBS и YARD, улучшенный отладчик и много новых возможностей.

Rails

Активные ссылки в логах Rails-сервера

Rails-разработчики теперь могут кликать на ссылки Controller#action, View и Route для перехода к соответствующим файлам.

Поиск и автодополнение URL-адресов в Rails

RubyMine теперь поддерживает поиск URL-адресов в Rails. Для перехода к файлу, в котором содержится нужный URL, просто введите /url в окне Search Everywhere. Также можно воспользоваться сочетанием клавиш Ctrl+Shift+\.

Теперь в RubyMine работает автодополнение HTTP-запросов. А значит, можно пользоваться автодополнением URL-адресов в Rails и переходить к связанным с ними маршрутам. Рядом с вариантами автодополнения отображаются типы доступных HTTP-запросов.

Окно Endpoints

В новом окне Endpoints отображаются все клиентские и серверные API, используемые в проекте. Это окно может помочь при разработке микросервисов и для обеспечения взаимодействия между бэкендом и фронтендом. Больше информации вы найдете в документации.

Улучшенное автодополнение HTML-тегов в ERB-файлах

Больше не нужно вручную вводить открывающие HTML-теги при редактировании файлов .html.erb. Просто начните вводить имя тега, и RubyMine предложит подходящий вариант автодополнения. Нажмите Tab, чтобы подставить его и продолжайте редактирование внутри тега.

RBS

Модификаторы доступа, встроенные в сигнатуру

Мы продолжаем улучшать поддержку RBS. Начиная с этой версии, RubyMine проверяет встроенные модификаторы доступа public и private, чтобы определить видимость объявлений атрибутов и методов. Мы также добавили модификаторы доступа для каждого метода в структурный вид.

Вывод типов из неизвестных классов

Раньше мы предоставляли типы для объекта, только если у его класса была RBS-сигнатура. Если соответствующей сигнатуры не было, мы могли получить типы методов только из Object.

Мы улучшили вывод типов для неизвестных классов, и теперь RubyMine будет искать типы не только в Object, но и во всех известных родительских классах.

Отладчик

Отладчик RubyMine стал работать надежнее для кода, написанного на Ruby 3 и более поздних версиях языка. Теперь вы сможете без проблем производить отладку, пользуясь всеми возможностями графического интерфейса, такими как пошаговое выполнение кода, вычисление выражений и т. д. Кроме того, мы исправили недочеты в предыдущих реализациях отладчика, поэтому, если вы программируете на более ранней версии Ruby, вы тоже сможете отлаживать свой код в RubyMine. Ничего специально делать не нужно: IDE автоматически предложит подходящую версию отладчика.

YARD

Функции анализа кода для макросов YARD

Начиная с версии 2022.2, RubyMine распознает расширения макросов YARD и предоставляет для них базовые функции анализа кода.

  • Переходите от ссылки к объявлению макроса с помощью действия Go to declaration.
  • Находите использования объявлений макроса с помощью действия Find usages.
  • Переименуйте все вхождения макроса, нажав Shift+F6.

Обратите внимание, что RubyMine не поддерживает макросы attach из-за возможных проблем с производительностью.

Улучшенное отображение YARD-документации

Посмотрите, как изменился внешний вид комментариев и тегов YARD при отображении в редакторе. Мы привели в порядок отступы и шрифты, чтобы документация внутри IDE выглядела единообразно.

Различные улучшения

Запуск текущего файла

Для запуска, отладки, развертывания и тестирования кода в RubyMine используются конфигурации запуска/отладки. В этой версии мы добавили возможность запуска и отладки файла, открытого в редакторе.

Анализ кода локальных переменных, соответствующих образцу

Функции анализа кода, такие как навигация между объектами, рефакторинг Rename и действие Find Usages, теперь доступны для локальных переменных, соответствующих образцу.

Выход из строчного комментария

В этой версии добавлена возможность удалить пустую строку комментария нажатием Enter. Чтобы добавить строку, нажмите Shift+Enter. Это поведение настраивается в меню: Preferences / Settings | Advanced Settings | Ruby | Delete empty line comment with Enter.

Изменение размера шрифта по всему редактору

Мы добавили сочетание клавиш, чтобы вы могли быстро изменить размер шрифта во всех окнах. Для увеличения нажмите Alt+Shift+., а для уменьшения — Alt+Shift+,.

Изменение имени интерпретатора

Если вы пользуетесь разными версиями Ruby в разных проектах, теперь можно изменить имя интерпретатора в настройках Ruby SDK. Дав понятные названия разным SDK, вы сможете избежать путаницы при выборе между ними.

Открытие Gemfile из подсказки RuboCop

Теперь можно открыть Gemfile и добавить гем RuboCop прямо из окна уведомлений. Когда вы увидите в нем предложение Set up RuboCop, нажмите Add.

Управление автоподстановкой скобок

Теперь вы можете выбирать, нужно ли автоматически добавлять скобки при автодополнении. Чтобы включить автоподстановку скобок, перейдите в раздел Settings/Preferences | Editor | General | Code Completion и отметьте галочкой опцию Insert parentheses automatically when applicable.

JavaScript

Поддержка автономных компонентов Angular

Поддержка автономных компонентов Angular

Мы активно работаем над поддержкой Angular 14 в RubyMine. Главное нововведение этого релиза — поддержка автономных компонентов Angular. IDE теперь корректно распознает и обрабатывает компоненты, директивы и каналы с отметкой standalone: true.

Обновления для Vue

Обновления для Vue

Поддержка Vue 3 в RubyMine не во всем поспевала за обновлениями фреймворка. Мы выпустили несколько улучшений, чтобы это исправить, и некоторые из них, например поддержка Vite, были включены в обновления к предыдущей версии IDE. RubyMine 2022.2 тоже содержит несколько исправлений: например, IDE распознает сужение типа в директивах v-if/else.

Поддержка TypeScript 4.7

Поддержка TypeScript 4.7

RubyMine 2022.2 включает в себя TypeScript 4.7 и поддерживает новые возможности языка, такие как moduleSuffixes и ESM в Node.js. IDE автоматически подставит расширение .js в оператор импорта, если в файле tsconfig.json для модуля установлено значение node16 или nodenext. Кроме того, RubyMine поддерживает поле typesVersions в файлах package.json.

Прекращение поддержки некоторых функций

С этим релизом мы прекращаем поддержку некоторых функций и технологий: Rails 3, гема RCov, конфигурации запуска JRuby, а также серверов предварительной загрузки Zeus, Spork и Nailgun. Подробнее об этом читайте в нашем блоге.