Pull to refresh
0
JetBrains
Делаем эффективные инструменты для разработчиков

RubyMine 2017.3. Более быстрая IDE, WSL, Embedded Puppet, и многое другое

Reading time 5 min
Views 3.5K
Здравствуй, Хабр! Как можно заметить по последним постам в блоге JetBrains, многие продукты компании находятся в стадии заключительных релизов в этом году.

В этой серии мы расскажем про новую версию IDE для Ruby и Rails, RubyMine 2017.3.



Оглавление


IDE стала умнее
Поддержка WSL
Улучшенный рефакторинг
RuboCop теперь еще круче
Больше опций code style
Поддержка EPP-темплейтов
Таймаут для отладчика
VCS
REST-клиент
Улучшения JavaScript
Базы данных
Важные мелочи

А теперь подробнее:

IDE стала умнее


Скорость


Нам удалось сделать 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 теперь еще круче


В предыдущем релизе мы научили 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 быстро находит все использования темплейтов в проекте, и умеет удобно переименовывать переменные и параметры во всем приложении:





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


Мы добавили опцию 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 стали сообразительнее.

Подробнее об улучшениях в инструментах работы с базами данных можно узнать в блоге DataGrip (категория 2017.3).

Важные мелочи


Среди других улучшений вы обнаружите поддержку Ruby 2.5, Docker Compose v3, Gems.rb, Cucumber Expressions и возможность переименовывать файлы из вкладок.

Скачать новую версию можно на странице What’s new. Если вы пробуете RubyMine впервые, то первый месяц использования идет за наш счет (данные вашей кредитки не потребуются).

Не забывайте репортить проблемы в трекер, подписывайтесь на наш Твиттер (в нем вы найдете продуктовые анонсы и полезные tips & tricks), а также присоединяйтесь к нашему Slack!

P.S. Пользуясь случаем, похвастаемся тем, что недавно в JetBrains прошел Ruby-митап:


Видеозаписи докладов должны появиться уже на этой неделе.

Выражаем благодарность организаторам и докладчикам, а также призываем присоединиться к Saint P Ruby User Group всех Ruby- и Rails- разработчиков, которые этого еще не сделали!

Удачи!
Tags:
Hubs:
+4
Comments 2
Comments Comments 2

Articles

Information

Website
jetbrains.com
Registered
Founded
Employees
1,001–5,000 employees
Location
Чехия