Что нового в RubyMine 2019.2

В RubyMine 2019.2 добавлена поддержка Rails 6 и Ruby 2.7, улучшен отладчик и поддержка YARD, а также включено множество платформенных улучшений.

Отладчик

Сравнение скорости отладки для версий 2019.1 и 2019.2

Ускоренный отладчик

В отладчике RubyMine для построчного отслеживания выполнения программы использовались события :line из TracePoint. Для версии 2019.2 мы разработали собственное расширение для MRI, которое позволяет отладчику выбирать, на каких фрагментах кода выполнение должно быть приостановлено, и в режиме отладки программа работает быстрее. Это позволило значительно ускорить отладчик и реализовать новые функции, описанные ниже.

Действие Smart Step Into

Действие Smart Step Into

Раньше, если во время сеанса отладки вам встречалась строка кода с несколькими вызовами методов, RubyMine позволял войти только в первый метод на строке. Новая команда Smart Step Into снимает это ограничение и позволяет вам войти и исследовать каждый метод или блок, расположенный на одной строке.

Точки останова для блоков

Точки останова для блоков

В новой версии точки останова можно устанавливать не только на строке кода, но и на блоке. Если щелкнуть на левое поле, чтобы установить точку останова, RubyMine спросит, хотите ли вы установить ее на строке, на блоке или же и там, и там.

Подробнее об отладке в RubyMine скриптов на Ruby, в т. ч. с использованием Rails, можно узнать в статье Отладка в RubyMine.

Ruby 2.7

Сопоставление с образцом

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

Подробнее о механизме сопоставления с образцом в Ruby

Нумерованные параметры блоков

Нумерованные параметры блоков

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

Rails 6

Поддержка Action Mailbox

Action Mailbox

RubyMine 2019.2 поддерживает Action Mailbox, который будет включен в Rails 6. IDE поддерживает автодополнение методов маршрутизации и callback-функций, а также переход между их реализациями и обращениями к ним.

Инспекции Action Mailbox

Мы также добавили пару инспекций, которые сообщат вам, если вы забудете добавить вызов routing в ApplicationMailbox или метод process в mailbox. Вторая инспекция также позволяет выполнить быстрое исправление.

Подробнее об использовании Action Mailbox вы можете узнать в этом выпуске GoRails.

Поддержка Enum

Добавлена полноценная поддержка анализа кода для ActiveRecord::Enum. Она включает в себя автодополнение, навигацию, а также поиск вхождений для имен значений типа enum и их методов. Также поддерживаются отрицательные области поиска (negative scopes) для значений типа enum, добавленные в Rails 6.

YARD

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

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

Мы постепенно улучшаем поддержку YARD, чтобы позволить вам создавать и управлять YARD-тегами, а также использовать в RubyMine улучшенное дополнение кода на основе YARD-аннотаций. В новой версии реализована поддержка аннотации типов и инспекций для тегов @overload и @yieldparam.

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

Factory Bot

Переименование фабрик

Переименование фабрик

В версии 2019.2 можно переименовывать (Shift+F6) фабрики, последовательности и типажи (traits). IDE найдет их определения и предложит переименовать их, а также переименовать все их вхождения и сам файл, если его имя совпадает с названием фабрики.

Кроме того, мы добавили отображение фабрик, последовательностей и типажей на панели File Structure (Alt+F7) и в одноименном всплывающем окне (Ctrl + F12), а также реализовали возможность их безопасного удаления (Refactor | Safe Delete).

JavaScript

Интеншены для деструктуризации

Новые действия

Новый интеншен Propagate to destructuring (Alt-Enter) позволяет заменять избыточные переменные еще одной деструктуризацией, если это возможно. Чтобы полностью убрать деструктуризацию, используйте интеншен Replace destructuring with property or index access.

Динамические вхождения в Refactoring Preview

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

Теперь, когда вы переименовываете идентификатор в файле JavaScript или TypeScript, IDE группирует динамические вхождения отдельно от остальных вхождений и по умолчанию исключает их из рефакторинга. Это позволяет проводить рефакторинг с большей точностью и дает вам возможность лучше контролировать переименование с помощью окна Refactoring Preview.

Свойства Vuetify

Улучшенная поддержка библиотек Vue-компонентов

Автодополнение кода для компонентов и свойств компонентов, входящих в Vuetify, BootstrapVue, Quasar и некоторые другие библиотеки компонентов Vue, стало более точным. Это возможно благодаря новому подходу к работе с библиотеками Vue-компонентов, который мы реализовали в IDE.

Инспекция для обнаружения дублирующегося кода

Поиск дубликатов

Новая инспекция Duplicate code fragment в реальном времени проверяет ваш код и немедленно подсвечивает в редакторе потенциально дублирующиеся участки. Инспекция работает для кода на JavaScript, TypeScript, CSS, Sass, SCSS и Less.

Узнайте, что нового в WebStorm, — по ссылке вы найдете подробную информацию об улучшениях для JavaScript в RubyMine 2019.2.

Стиль кода

Редактирование конфигураций стиля кода

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

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

Скрипты командных оболочек

Редактирование скриптов командной оболочки

Редактирование скриптов командных оболочек

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

Git

Автодополнение для .gitignore

Автодополнение в файлах .gitignore

Теперь RubyMine предлагает варианты автодополнения для имен файлов и папок в файлах .gitignore. Используйте сочетание клавиш Ctrl-щелчок мышью на имени файла или папки для перехода к соответствующему объекту в окне Project. Вы также можете быстро добавлять файлы в .gitignore с панели Project и из вкладки Local Changes — щелкните имя файла правой кнопкой мыши и выберите Add to .gitignore.

Инструменты для работы с базами данных

Улучшения инструментов для работы с базами данных - Полнотекстовый поиск

Полнотекстовый поиск по базам данных

Теперь вы можете находить данные в базах данных, даже если не знаете их точного расположения. Кликните правой кнопкой мыши на источнике данных, по которому вы хотите выполнить поиск, и выберите Full-text Search (Ctrl+Alt+Shift+F). По запросу будут показаны только те строки, которые содержат нужные вам данные.

Узнайте, что нового в DataGrip, — по ссылке вы найдете подробную информацию об улучшениях в работе с базами данных в RubyMine 2019.2.

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

  • Поддержка стандартных гемов
  • Поддержка Action Text
  • Поддержка Cucumber 4
  • Мелкие улучшения интерфейса в окне Version Control