Что нового в RubyMine 2023.3

Улучшенная поддержка AI Assistant, пользовательские пути в приложениях и движках Rails, анализ кода для строгих локальных переменных Rails 7.1, дополнительные объявления из RBS, обновление рендереров типа в отладчике, RuboCop в серверном режиме, инспекции кода Brakeman и многое другое.

AI Assistant Публичный доступ

Мы официально выпустили своего ИИ-помощника AI Assistant, добавив ряд новых возможностей и улучшив уже известные функции, чтобы сделать работу в IDE JetBrains еще эффективнее.

AI-generated name suggestions

Поддержка генерации имен с помощью ИИ

Теперь ИИ может генерировать и предлагать вам имена локальных переменных и параметров в коде Ruby. Это действие доступно при использовании встроенного рефакторинга Rename. Чтобы включить предложения имен, перейдите в Settings | Tools | AI Assistant и поставьте флажок Provide AI-generated name suggestions.

AI assistant context

Улучшенные контексты Ruby

Мы продолжаем улучшать контексты Ruby и способ, которым большие языковые модели анализируют вашу кодовую базу. Эти изменения влияют на то, как AI Assistant генерирует документацию, объясняет код Ruby, распознает содержимое файла и т. п.

Генерация юнит-тестов

Генерация юнит-тестов

С помощью AI Assistant очень легко создавать тесты для публичных методов в приложении Ruby или Rails. Выберите метод, для которого нужно подготовить тесты, и нажмите ⌥ + Enter в macOS или Alt + Enter в Windows. В контекстном меню выберите AI Actions, а затем Generate Unit Tests.

Чтобы использовать AI Assistant как дополнительную функцию RubyMine, вам потребуется подписка JetBrains AI Service.

Rails

Custom paths for Rails

Пользовательские пути в приложениях и движках Rails

RubyMine распознает пользовательские пути в приложениях и движках Rails. Помимо путей, используемых по умолчанию, например app, app/controllers и app/models, IDE распознает любые другие местоположения в вашем проекте, если их сконфигурировать. Таким образом, вы можете изменить структуру проекта по умолчанию, но при этом пользоваться функциями анализа кода, которые предлагает RubyMine. Настроить пользовательские пути можно в меню Settings | Languages & Frameworks | Rails | Paths.

Автоматический импорт путей Rails

Автоматический импорт путей Rails

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

Code insight for elements outside default location

Анализ кода для моделей, контроллеров и почтовых программ независимо от их местоположения

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

Strict locals

Анализ кода для строгих локальных переменных Rails 7.1

Теперь RubyMine поддерживает разрешение, автодополнение, а также функции Find Usages, Rename и возможности навигации для строгих локальных переменных.

Вывод типов

Type provision for self-type bindings

Отображение пользовательских типов для self внутри блоков

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

Annotation to specify self-type of blocks

Пользовательские аннотации для указания типа блоков self

Теперь, используя комментарий YARD, можно прямо в блоках явно указать для них тип self.

Extra declarations from RBS

Поддержка дополнительных объявлений из RBS

Мы реализовали базовую поддержку распознавания дополнительных объявлений из RBS, если они отсутствуют в файлах Ruby. Это особенно удобно для проектов, в которых широко используется рефлексия, поскольку тогда такие объявления могут использоваться для автодополнения, а также другими функциями RubyMine. Эта возможность доступна для классов, модулей, констант, методов и переменных.

Отладчик

Рендереры типа в отладчике

Обновление рендереров типа в отладчике

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

Инструменты и библиотеки

Rubocop server mode

RuboCop в режиме сервера

RubyMine поддерживает автоматический запуск RuboCop в режиме сервера. Для использования этой функции должны быть выполнены следующие требования:

  • система Linux или MacOS;
  • локальный интерпретатор Ruby MRI 2.3 или более поздней версии;
  • RuboCop 1.31 или более поздней версии.
Brakeman

Инспекции кода Brakeman

В новой версии RubyMine результаты инспекций Brakeman отображаются в IDE в удобном формате, позволяя быстро справиться с проблемами безопасности благодаря удобному доступу к документации Brakeman, индикаторам надежности и т. п. Убедитесь, что у вас установлен гем brakeman, а затем перейдите в меню Code | Analyze Code | Run inspection by name и запустите анализ кода.

rspec-parameterized

Параметризация spec с помощью rspec-parameterized

RubyMine предлагает комплексную поддержку синтаксиса RSpec::Parameterized, включая распознавание, разрешение и варианты автодополнения кода. Кроме того, мы внедрили конфигурации Run/Debug, чтобы сделать тестирование более удобным.

let_it_be support

Объявления тестовых классов с помощью let_it_be

Мы добавили поддержку объявления тестовых классов в тестах RSpec с помощью блоков let_it_be. Это обеспечивает разрешение переменных, подсветку синтаксиса, автоматическую обработку вставки блоков do для before_all, а также многие другие возможности. Чтобы включить эту функцию, необходимо установить гем test-prof.