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

RubyMine 2016.3: Отладка в режиме attach, обновленная поддержка Puppet, синхронизация SDK через rsync

Reading time 4 min
Views 4.7K
JetBrains corporate blog Ruby *Ruby on Rails *Puppet *
Привет, хабравчане!

В ноябре мы анонсировали обновленные IntelliJ IDEA, CLion, PyCharm и DataGrip, а эта статья — для Ruby/Rails-разработчиков. Мы выпустили RubyMine 2016.3, заключительное обновление нашей IDE для Ruby и Rails в этом году! Обновление доступно для скачивания и бесплатного 30-дневного ознакомления на нашем сайте.



Теперь о том, что нового вы обнаружите в этой версии.

Присоединение отладчика к ранее запущенным процессам


Приходилось ли вам перезапускать работающий сервер и воспроизводить проблему заново только потому, что он был запущен без гемов для отладки? Если да, то вы будете рады узнать, что RubyMine теперь можно присоединить к уже работающим Ruby/Rails-процессам. IDE сама определит версию Ruby и гемсет, использованные для запуска скрипта, установит все необходимые гемы, подключится к процессу, будь он запущен из IDE, терминала или пайплайна, и откроет доступ ко всем возможностям отладчика.



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

Развитая поддержка Puppet


“Развитая” по той причине, что раньше уже существовала, но теперь стала гораздо лучше. Рассмотрим по пунктам:

Улучшенное автодополнение кода


  • Мы добавили live templates и автодополнение для всех основных синтаксических структур: case, class, define, function, if, node и unless.
  • Также добавлено автодополнение типов данных для типизированных параметров классов, функций и ресурсов.
  • RubyMine теперь поддерживает функции, написанные на языке Puppet. Они тоже доступны в автодополнении.




Улучшенная навигация и рефакторинг


  • Go to Declaration, Find Usages и Rename refactoring теперь работают точнее благодаря более правильному определению контекста.
  • Мы сделали так, чтобы переименование работало “на лету”, без дополнительных диалогов, как в Java.




На тему Puppet тоже написан отдельный пост.

Ускоренная синхронизация с remote SDK


Если вы пользуетесь нашей IDE, то знаете, что раньше синхронизация гемов с копиями на удаленном сервере требовала, мягко говоря, значительного времени и терпения. Но мы исправились. Интеграция с rsync позволила увеличить скорость загрузки гемов в десятки раз.



Полноценная поддержка Minitest::Spec


Теперь RubyMine выбирает нужный фреймворк для запуска Spec-тестов и позволяет запускать тесты из папки со спецификациями.

Обратите внимание: чтобы все заработало корректно, необходимо вызвать 'minitest/reporters' и включить RubyMineReporter в файле спецификаций.



Пользовательский интерфейс


Обновленный интерфейс настройки Ruby SDK и гемов


Многие Ruby-разработчики используют гемсеты для управления набором гемов. Сначала мы поддержали RVM-гемсеты, а год назад — и Rbenv гемсеты, и наш UI не справился с этой нагрузкой. В этой версии RubyMine мы полностью переделали этот интерфейс и сделали его более удобным и понятным. На эту тему тоже написан отдельный пост в нашем блоге.



Мастер начальной настройки


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



Обновленный дизайн иконок


Иконки были переделаны в стиле “flat-дизайн”, благодаря чему файлы и папки в Project Tool Window отображаются более четко.



Помимо обновлений, относящихся к Ruby/Rails, мы унаследовали и ряд платформенных улучшений от нашего флагмана, Intellij IDEA. Перечислим их кратко (а подробнее см. здесь же, на Хабре, в статье про IntelliJ IDEA 2016.3):

JavaScript


Flow


Теперь, если указать Flow в качестве версии JavaScript, а также указать путь к дистрибутиву Flow, заработают соответствующие инспекции.

ECMAScript 6


  • Теперь RubyMine автоматически конвертирует переменные объявленные var в const/let в зависимости от семантики их использования.
  • Для всех вызовов require IDE предложит автозамену на import.
  • Для всех классов, объявленных с помощью функций и цепочек prototype, IDE предложит автозамену на полноценные классы.


TypeScript


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

Система управления версиями


В VCS действительно симпатичные изменения. Надеемся, вам они понравятся.

Переработан лог Git и Mercurial: поиск стал быстрее, а интерфейс проще. Разрешение конфликтов теперь происходит более эффективно, некоторые несложные конфликты разрешаются автоматически. Кроме того, в IDE стало легче управлять локальными и удаленными изменениями. Подробнее можно почитать как и в посте про IntelliJ IDEA, на который ссылка дана выше, так и на нашем сайте.

Базы данных


К этим изменениям относятся более удобное редактирование данных с возможностью массовых изменений, интеллектуальные подсказки и улучшенная интеграция с утилитами и драйверами. Если вы пользуетесь инструментами баз данных в RubyMine, то прочитайте недавний пост DataGrip на Хабре. Упомянутые в нем улучшения доступны в новой версии и нашей IDE.

И еще кое-что


Среди других улучшений — отображение классов Mailer в соответствии с архитектурой MVC в окне Rails Project Tool Window; переименование файлов без поиска вхождений; поддержка React Native.

Узнать еще больше подробностей и загрузить RubyMine для бесплатного ознакомления в течение 30 дней можно на странице What’s New.

Спасибо за внимание! Будем рады услышать ваши мнения в комментариях и постараемся поддержать обсуждение.
Tags:
Hubs:
Total votes 13: ↑12 and ↓1 +11
Comments 14
Comments Comments 14

Posts

Information

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