Новая версия RubyMine: Chef, Puppet, EditorConfig и многое другое

Мы в JetBrains искренне считаем, что программирование отнюдь не сводится к простому написанию кода. Программировать — значит постоянно развиваться, приумножать свои знания, совершенствовать навыки, используя при этом самые лучшие инструменты. Если вам знакома притча о двух дровосеках, в которой более искусен оказывается тот, кто не забывает наточить свой топор, то вы поймете наше стремление оттачивать инструменты разработки с каждым следующим релизом. Не стал исключением и последний релиз RubyMine, нашей среды для разработки на Ruby и Rails, о котором мы и хотим рассказать подробнее в этом посте. Кстати, вчера стало доступно для скачивания и первое обновление — RubyMine 7.0.1.f69b84627e004818b6350aa958f86743.png

Интеграция с ChefСистема управления конфигурациями Chef теперь поддерживается посредством отдельного плагина, совместимого с RubyMine 7 и IntelliJ IDEA 14 и позволяющего распознавать и создавать книги, рецепты и ресурсы в IDE.Если установлен Chef gem и открыт проект, содержащий папку с каталогом recipes c ruby-файлом внутри, то при открытии этого файла RubyMine автоматически распознает его как рецепт и предлагает добавить соответствующую директорию в качестве книги:

6456d6dd70f640e1b6f41541267b5186.png

Структуру проекта можно в любой момент изменить в настройках (Settings | Project Structure):

a30a29d1621a4d49ac6f6c5f6ee0501d.png

После того как завершены настройки, в файлах-рецептах становится доступным автодополнение кода как для ресурсов:

89996c532ef046a3920cad39b198e2e7.png

так и для их атрибутов:

4b1809949d514ae0ac91640b8e6ed97e.png

Поддержка языка Puppet Поддержка языка Puppet в IDE также осуществляется посредством отдельного плагина, совместимого с RubyMine 7 и IntelliJ IDEA 14, который был значительно улучшен и заточен для работы с Puppet-манифестами.В первую очередь мы усовершенствовали механизм навигации, поскольку манифесты могут содержать большое число определений ресурсов, классов, узлов, переменных и т. д., которые необходимо корректно обрабатывать:

31bee82c448b4a7ca5d7837d8f7599ee.png

Навигация осуществляется не только среди манифестов, созданных пользователем, но также и по модулям, установленным из Puppet Forge. Однако следует учесть, что используемые модули должны быть расположены в директории по умолчанию или в директории, указанной в конфигурационном файле puppet.conf:

f8853c57a0c6470ea3d6550080817d0d.png

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

c2923bdf4a6942ddb065bb9c3867b4ad.png

Новые возможности для настройки стиля кода В RubyMine 7 была добавлена поддержка формата EditorConfig, который позволяет использовать одни и те же настройки стиля кода в разных проектах и разных редакторах. Правила форматирования описываются в конфигурационном файле editorconfig, при добавлении которого в корень проекта правила автоматически распознаются и применяются: 30196d1022f94a1cb26891a970c35585.png

Обратите внимание, что правила форматирования, описанные в .editorconfig, по умолчанию имеют приоритет над настройками IDE. Выключить EditorConfig можно в настройках Editor | Code Style.

Кроме того, в настройках форматирования (Editor | Code Style) появилась опция Detect and use existing file indents for editing, которая позволяет редактору определять и использовать текущие настройки форматирования в файле:

e7ab203c5c114680a1772ae828b431e1.png

Таким образом, даже если настройки стиля кода (такие как Use Tab Character и Indent Size) в редактируемом файле отличаются от настроек IDE, они будут сохраняться.

Улучшенный отладчик При запуске проекта в режиме отладки теперь стала доступна интерактивная консоль, которая позволяет выполнять команды непосредственно в IDE с использованием в том числе и функции автодополнения кода: c9f625a4d220438bb3bf4284dd6e626f.png

При запуске тестов в режиме отладки интерактивная консоль доступна в виде отдельной вкладки:

4631cb5e4cfb49828c30b206b7b77162.png

Кроме того, в RubyMine 7 добавлена новая удобная функция отладчика: теперь значения объектов отображаются непосредственно в редакторе рядом с кодом:

7b63869803804e94a7614e40626c3aed.png

Более интеллектуальный анализ кода Благодаря идеям и замечаниям наших пользователей нам удалось сделать анализ кода в новой версии IDE еще умнее. Теперь в качестве атрибутов метода правильно распознаются также атрибуты YARD и методы RDoc: 74e443221f6046ac86174ee733692f52.png

Поддержка RVM в качестве удаленного SDK проекта Удаленные интерпретаторы Ruby под управлением RVM теперь можно добавлять в качестве SDK проекта: b87f529030e94ef39b798cfd506b7d7e.png

Кроме того, мы улучшили и поддержку удаленных SDK на основе файлов конфигурации vagrant.

Scratch-файлы С помощью функции Scratch Files теперь можно экспериментировать и прототипировать код прямо в редакторе, не создавая при этом новые файлы в проекте. По шорткату Shift-Cmd-N / Ctrl+Alt+Shift+Insert вы можете создать временный файл, выбрав нужный тип файла. Все возможности редактора, например автодополнение кода и инспекции, доступны в Scratch-файлах: ea04c54b833b4fd28faa53bad0ef5527.png

И многое другое RubyMine 7 также унаследовал от WebStorm 9 ряд улучшений для веб-разработки, включая предварительный просмотр для Emmet, поддержку последних версий CSS3, Stylus и Sass, реформатирование кода для Slim и HAML, поддержку ReactJS и JSX/ES6 и др.Мы можем еще долго рассказывать о многих других, небольших, но от того не менее приятных и полезных новшествах RubyMine 7. Но не лучше ли просто попробовать новую версию в деле? Узнать подробнее о RubyMine 7 и скачать бесплатную 30-дневную пробную версию IDE вы можете на нашем сайте. Обновление бесплатно для всех пользователей, которые купили или обновили свои лицензии 13 ноября 2013 года или позднее. Также напоминаем о том, что все IDE от JetBrains теперь бесплатны для студентов.

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

Программируйте с удовольствием!-Команда JetBrains

© Habrahabr.ru