+38/044/257-2444
+38/067/502-3306
+38/050/370-3627
Новости

RubyMine 2017.3 - новая версия IDE для Ruby и Rails

IDE стала умнее

Скорость

JetBrains удалось сделать IDE быстрее, что заметно при работе с крупными приложениями. К примеру, теперь проверка всего кода на ошибки (Code | Inspect Code) занимает значительно меньше времени по сравнению с RubyMine 2017.1 и 2017.2:

Навигация к объявлению методов

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

Мы всерьез настроены улучшать базовую поддержку Ruby и Rails и в последующих версиях.

IDE распознает вызываемые параметры

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


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


IDE научилась распознавать вложенные проекты, корректно устанавливать зависимости и переходить к ним при необходимости:
Если ваше приложение является монорепозиторием, попробуйте новую версию и сообщите нам, если столкнетесь с проблемами.

Поддержка WSL

Если у вас Windows, то не проходите мимо этой новой возможности. RubyMine научился работать с Windows Bash, что позволяет избежать болезненных настроек Ruby на “винде”. Рецепт:

  • Установить bash согласно данному руководству.
  • Добавить WSL в качестве удаленной SDK в настройках (Preferences / Settings | Languages & Frameworks | Ruby SDK and Gems | New remote).
  • Забыть, что вы имеете дело с Windows.

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

RubyMine обладает набором рефакторингов, позволяющих удобно приводить код в порядок. В частности, опция Extract Method помогает быстро вынести логически выделенный по смыслу код в отдельный метод. Теперь эта опция может еще и сразу вынести код в секцию private или protected. Если секция еще отсутствует в файле, то RubyMine создаст ее самостоятельно:

RuboCop теперь еще круче


В предыдущем релизе JetBrains научили RubyMine применять автокоррекции RuboCop для всего файла прямо из редактора. Начиная с версии 2017.3 вы можете не только обнаружить и исправить все ошибки, но и пофиксить лишь определенный cop department или offense class (блог). Никаких плагинов, все работает сразу “из коробки”!

Вместе с тем, RubyMine учитывает наличие .rubocop.yml и отображает нарушения согласно настройкам:

Кстати, нас также спрашивают, умеет ли IDE отображать кастомные пользовательские инспекции. Умеет, и некоторые пользователи уже в этом убедились:

Больше опций code style

В настройках (Preferences / Settings | Editor | Code style | Ruby) теперь можно задать отступы для private и protected секций. RubyMine запомнит выбранные настройки и использует их при форматировании кода в редакторе (Code | Reformat code):

Также, теперь можно выбрать какие операторы должны обосабливаться пробелами, а какие оставаться нетронутыми форматтером:

Поддержка EPP-темплейтов

Некоторые наши пользователи занимаются управлением конфигураций и используют Puppet. Для них реализована поддержка Embedded Puppet. В частности, добавлено автозаполнение и навигация к EPP-темплейтам и манифестам:

А еще IDE быстро находит все использования темплейтов в проекте, и умеет удобно переименовывать переменные и параметры во всем приложении:

Таймаут для отладчика

JetBrains добавили опцию Trace to_s evaluation (Preferences / Settings | Build, Execution, Deployment | Debugger), при выборе которой отладчик начнет выбрасывать сообщения о таймауте в случае оверхеда:

Таймаут можно настроить по времени, а можно и отключить вовсе:

VCS

Interactive rebase последних изменений в Git теперь можно запустить прямо из лога, нажав на базовый коммит:

При переключении между ветками IDE сохраняет состояние workspace: расположение вкладок редактора, окон инструментов и т. п.:

В гит-лог добавлен режим Show Changes to Parents. В этом режиме правая панель в логе показывает не только изменения в файлах с конфликтами, но и отдельно неконфликтные изменения для каждой ветки, участвующей в слиянии:

REST-клиент

Отныне работать с REST-запросами можно при помощи нового инструмента на основе редактора. Достаточно создать файл в проекте с разрешением .http и открыть его в редакторе:

Детальный разбор работы с новым REST-клиентом.

Улучшения JavaScript

  • Для Vue.js появилось автодополнение кода и навигация для props, свойств и методов, а также новая коллекция шаблонов кода.
  • Новые рефакторинги Extract type alias и Extract interface для TypeScript.
  • Обновленная документация и улучшенное автодополнение для стандартных методов и объектов JavaScript. Открытие проектов стало быстрее благодаря предварительно построенным индексам для этих методов.
  • Импорты в JavaScript- и TypeScript-файлах теперь добавляются автоматически при копировании и вставке кода из одного файла в другой.

Подробнее об улучшениях можно узнать на странице What’s new in WebStorm, а также в ролике:

Базы данных

  • Если вы работаете с большим количеством источников данных (data sources), эти источники данных теперь можно организовать в группы.
  • Для удобства работы с числовыми данными в таблице теперь они выравниваются по правому краю.
  • Для PostgreSQL в окне инструментов Database отображаются Users и Roles, а также поддерживаются Foreign Data Wrappers.
  • Можно вставлять данные в таблицу из Excel.
  • Несколько значений таблицы можно сравнивать между собой.
  • Экспорт в DDL теперь поддерживает больше опций и доступен через Context menu | SQL Scripts | SQL Generator.
  • Автодополнения для JOIN стали сообразительнее.

Другие новости

Лучшая цена