Что нового в RubyMine 2023.2

В RubyMine 2023.2 появилась новая функция AI Assistant, расширена поддержка Turbo-Rails и Import Maps, улучшена производительность и поддержка LSP API для разработчиков плагинов, а также расширены возможности работы с RBS и Vue.

Ruby и Rails

Поддержка Turbo-Rails

В новой версии обновлены возможности автодополнения кода Turbo в проектах Ruby on Rails. Теперь автодополнение можно использовать для потоков Turbo в контроллерах и представлениях, а также для трансляции потоков Turbo из моделей. Кроме того, доступно автодополнение для фреймов Turbo в представлениях.

Поддержка Import Maps

Пользователи новой версии могут использовать команды importmap в Run Anything, модулях спецификаторов автодополнения и путях к файлам в методах pin и pin_all_from, а также переходить к импортированным модулям и их использованиям.

Подсветка синтаксиса в описаниях инспекций

Подсветка синтаксиса в описаниях инспекций

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

Анализ кода для аксессоров хранилища Rails

Анализ кода для аксессоров хранилища Rails

Мы добавили анализ кода для аксессоров ActiveRecord::Store. Теперь можно использовать автодополнение кода и навигацию для аксессоров, методов отслеживания изменений (dirty), методов доступа к изменениям, внесенным при последнем сохранении, а также для валидации аксессоров.

Пользовательские рендереры в отладчике

Пользовательские рендереры в отладчике

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

AI Assistant Ограниченный доступ

Чат-бот

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

Генерация сообщений коммитов

Генерация сообщений коммитов

В диалоге Commit Changes появилась кнопка Generate Commit Message with AI Assistant. При нажатии на нее информация об изменениях передается большой языковой модели, которая создает сообщение коммита с описанием внесенных изменений.

Создание документации с помощью AI Assistant

Чтобы создать с помощью большой языковой модели документацию для объявления, просто перейдите в подменю AI Actions и выберите Write documentation. После этого IDE сгенерирует статическую часть комментария, а ИИ создаст собственно текст документации.

Новый интерфейс

Новое меню для Windows и Linux

Новое меню для Windows и Linux

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

Обновленные элементы управления окнами на macOS

Элементы управления окном теперь располагаются прямо на главной панели инструментов, а не на плавающей панели, как было раньше.

Навигация по проектным папкам одним кликом

В представлении Project теперь можно использовать опцию Open Directories with Single Click, чтобы быстрее разворачивать и сворачивать папки проектов. Для этого достаточно нажать на значок с тремя точками и выбрать нужный пункт в раскрывающемся меню.

Светлая тема со светлыми заголовками в новом интерфейсе

Светлая тема со светлыми заголовками в новом интерфейсе

Новая опция Light with Light Header обеспечивает единообразное представление элементов интерфейса. Благодаря ей все заголовки окон, подсказки и всплывающие уведомления отображаются в единой светлой гамме, и интерфейс выглядит лучше.

Цветные заголовки проектов в новом интерфейсе

Цветные заголовки проектов в новом интерфейсе

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

RBS

Поддержка исправления опечаток

Поддержка исправления опечаток

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

Форматирование псевдонимов классов и модулей

Форматирование псевдонимов классов и модулей

В новой версии появились функции форматирования для псевдонимов классов и модулей.

Инспекции правил именования

Инспекции правил именования

Мы добавили инспекции правил именования для интерфейсов, псевдонимов типов и переменных типов.

Анализ кода для синтаксиса use

Анализ кода для синтаксиса use

Для синтаксиса use в RBS теперь доступен анализ кода.

Аннотации и инспекции для директив use

Аннотации и инспекции для директив use

Мы добавили аннотации и инспекции для директив, когда они используются неверным образом.

Форматирование директив use

Форматирование директив use

RubyMine обеспечивает последовательное форматирование директив use в соответствии с принятыми стандартами.

Анализ кода для псевдонимов классов и модулей RBS

Анализ кода для псевдонимов классов и модулей RBS

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

Производительность

Улучшенная синхронизация для Docker и SDK Docker-compose

Улучшенная синхронизация для Docker и SDK Docker-compose

Мы улучшили синхронизацию гемов для Docker и SDK Docker-compose. В новой версии для копирования гемов как из образа, так и из запущенного контейнера используется только API Docker Engine.

Обновленный лексер

Лексер RubyMine был полностью переработан, в результате значительно увеличилась скорость лексического анализа и парсинга.

Возможности и улучшения

Поддержка LSP API для разработчиков плагинов

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

Обновленные настройки сворачивания кода

Мы обновили параметры сворачивания кода по умолчанию. Теперь это:

  • Обрамление кода
  • Front matter
  • Цели связей
  • Содержание
  • Таблицы
Поддержка Vue Language Server

Поддержка Vue Language Server

В RubyMine добавлена базовая поддержка Vue Language Server (Volar), позволяя обеспечить более точное обнаружение ошибок. По умолчанию Volar используется для TypeScript 5.0 и более свежих версий, а для более ранних — наша собственная реализация.

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

Закрепленные конфигурации запуска в виджете Run

Закрепленные конфигурации запуска в виджете Run

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

Сортировка файлов по времени изменения в представлении Project

Сортировка файлов по времени изменения в представлении Project

Теперь файлы в представлении Project можно отсортировать по времени изменения. Новая версия RubyMine может автоматически отсортировать файлы по этому параметру.

Расширенные настройки главной панели инструментов

Расширенные настройки главной панели инструментов

Стало удобно добавлять действия на панель инструментов с помощью раскрывающегося меню.

Новые шаблоны для React-хуков

Новые шаблоны для React-хуков

В новой версии добавлена новая коллекция шаблонов Live Templates, а также повышена эффективность и удобство работы с хуками React.