Что нового в RubyMine 2024.3

Улучшенное облачное автодополнение кода, написание промтов для ИИ прямо в редакторе, поддержка Kamal 2, встроенная интеграция с RBS Collection, обновления Ruby 3.4, а также проверка правописания с помощью Grazie

AI Assistant

Улучшенное автодополнение с использованием облака

RubyMine 2024.3 предлагает более быстрое облачное автодополнение кода через плагин JetBrains AI Assistant. Оно работает точнее, лучше понимает контекст, а также поддерживает многострочное автодополнение.

Благодаря языковой модели Mellum, автодополнение теперь работает почти в 10 раз быстрее, предлагая варианты практически мгновенно. По сравнению с предыдущей версией предложенные варианты принимаются почти в два раза чаще, а отмен стало в два-три раза меньше.

Обратите внимание, что облачное автодополнение в AI Assistant доступно только с подпиской AI Pro или во время пробного периода.

Улучшенный контекст Rails для юнит-тестов

AI Assistant теперь получает больше информации о приложениях на Rails, что позволяет лучше генерировать модульные тесты.

Написание промтов прямо в редакторе

В RubyMine 2024.3 можно взаимодействовать с AI Assistant прямо в редакторе. Просто напишите запрос обычным языком, и AI Assistant сразу же сгенерирует нужный код, выделив изменения фиолетовым цветом. При этом AI Assistant учитывает контекст, автоматически добавляя связанные файлы и символы для более точной генерации кода.
На данный момент эта функция доступна в файлах *.rb.

Поддержка Rails 8

Поддержка Kamal 2

Rails 8 поддерживает развертывание приложений с помощью Kamal 2, а в RubyMine 2024.3 добавлено автодополнение для его конфигураций.

Аннотации допустимости nil из schema.rb для поддержки типов

Теперь RubyMine распознает модификатор not-null для атрибутов миграции и предупреждает о некорректных присвоениях nil.

Анализ кода для Solid Queue и Solid Cache

В RubyMine 2024.3 для файлов queue_schema.rb и cache_schema.rb теперь доступны специальные иконки и подсветка синтаксиса.

RBS

Встроенная интеграция с RBS Collection

В RubyMine появилась встроенная интеграция с RBS Collection — коллекцией RBS-файлов для гемов, не включающих сигнатуры.

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

Ruby

Использование it в качестве псевдонима для нумерованных параметров в блоках

RubyMine теперь распознает it как псевдоним для _1 в блоках без параметров, обеспечивая в таких случаях поддержку типов и преобразования.
Мы добавили новую аннотацию об ошибке, которая не позволит вам использовать it в блоке с обычными нумерованными параметрами.

Поддержка «охлажденных» строк из Ruby 3.4

RubyMine теперь распознает так называемые охлажденные строки — новое промежуточное состояние строковых литералов в Ruby 3.4. В проектах, где не используется директива frozen_string_literal, строки теперь можно изменять, и при этом будет выдаваться предупреждение, а не ошибка.

Сообщение об ошибке при неоднозначных анонимных аргументах

RubyMine теперь показывает ошибку, если вы пытаетесь использовать анонимные блоки, rest- или keyword rest-аргументы в неоднозначном вложенном контексте.

Поддержка систем контроля версий

Обновленный поиск по файлам

Теперь у функции Find in Files есть новый режим — Project Files Excluding Git-Ignored. Из поиска исключаются файлы, указанные в .gitignore, помогая вам сосредоточиться только на нужном коде.

Отключение фоновых проверок перед коммитом

Вы можете управлять фоновыми проверками в процессе коммита с помощью новой опции Run advanced checks after a commit is done в разделе Settings | Version Control | Commit. Она позволяет запускать тесты и инспекции после коммита. Если вы хотите, чтобы проверки завершались до коммита, просто отключите эту опцию.

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

Встроенная проверка орфографии и грамматики

Плагин Grazie теперь встроен в RubyMine. Он выполняет умные проверки, а не просто отлавливает орфографические ошибки и опечатки. Grazie знает правила грамматики и предупреждает о стилистических недочетах.

Проверки Grazie работают в строках, комментариях, блочных комментариях, heredocs и файлах RDoc.

Настроить Grazie можно в разделе Settings | Editor | Natural Languages | Grammar and Style | Scope.

Улучшенная поддержка консоли

Мы добавили новые настройки для управления предварительным выбором первого варианта автодополнения при использовании консолей или поля Evaluate Expression во время отладки.

В ходе отладки поле Evaluate Expression теперь точно отображает типы self, распознает локальные переменные и параметры с выведенными типами, а также поддерживает автодополнение для новых локальных переменных в текущем стеке.

Консоль теперь запоминает выполненные команды и поддерживает вывод типов и автодополнение для локальных переменных.

Больше открытых вкладок

Теперь в редакторе по умолчанию можно держать открытыми до 30 вкладок, прежде чем IDE начнет закрывать наименее используемые. Эту настройку можно изменить в разделе Settings | Editor | General | Editor Tabs.

Новое положение Rename в меню

Мы поменяли расположение действия Rename в контекстном меню при его вызове в редакторе и в окне Project. Теперь оно находится в самом верху, и тем, кто часто пользуется мышкой, будет удобнее переименовывать файлы, переменные и другие элементы.

Обновленный интерфейс терминала

Интерфейс нового терминала стал компактнее за счет уменьшения отступов — теперь на экране больше места для команд и с ними удобнее работать.

Подсветка всех вхождений выделенного текста

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