Мы в JetBrains искренне считаем, что программирование отнюдь не сводится к простому написанию кода. Программировать — значит постоянно развиваться, приумножать свои знания, совершенствовать навыки, используя при этом самые лучшие инструменты. Если вам знакома притча о двух дровосеках, в которой более искусен оказывается тот, кто не забывает наточить свой топор, то вы поймете наше стремление оттачивать инструменты разработки с каждым следующим релизом. Не стал исключением и последний релиз RubyMine, нашей среды для разработки на Ruby и Rails, о котором мы и хотим рассказать подробнее в этом посте. Кстати, вчера стало доступно для скачивания и первое обновление — RubyMine 7.0.1.
Интеграция с Chef
Система управления конфигурациями Chef теперь поддерживается посредством отдельного плагина, совместимого с RubyMine 7 и IntelliJ IDEA 14 и позволяющего распознавать и создавать книги, рецепты и ресурсы в IDE.
Если установлен Chef gem и открыт проект, содержащий папку с каталогом recipes c ruby-файлом внутри, то при открытии этого файла RubyMine автоматически распознает его как рецепт и предлагает добавить соответствующую директорию в качестве книги:
Структуру проекта можно в любой момент изменить в настройках (Settings | Project Structure):
После того как завершены настройки, в файлах-рецептах становится доступным автодополнение кода как для ресурсов:
так и для их атрибутов:
Поддержка языка Puppet
Поддержка языка Puppet в IDE также осуществляется посредством отдельного плагина, совместимого с RubyMine 7 и IntelliJ IDEA 14, который был значительно улучшен и заточен для работы с Puppet-манифестами.
В первую очередь мы усовершенствовали механизм навигации, поскольку манифесты могут содержать большое число определений ресурсов, классов, узлов, переменных и т. д., которые необходимо корректно обрабатывать:
Навигация осуществляется не только среди манифестов, созданных пользователем, но также и по модулям, установленным из Puppet Forge. Однако следует учесть, что используемые модули должны быть расположены в директории по умолчанию или в директории, указанной в конфигурационном файле puppet.conf:
Плагин также реализует традиционные для наших IDE функции, такие как автодополнение кода, рефакторинги, инспекции, поиск использований, быструю документацию, форматирование кода, и т. д. — с учетом структуры проекта и установленных модулей:
Новые возможности для настройки стиля кода
В RubyMine 7 была добавлена поддержка формата EditorConfig, который позволяет использовать одни и те же настройки стиля кода в разных проектах и разных редакторах. Правила форматирования описываются в конфигурационном файле editorconfig, при добавлении которого в корень проекта правила автоматически распознаются и применяются:
Обратите внимание, что правила форматирования, описанные в .editorconfig, по умолчанию имеют приоритет над настройками IDE. Выключить EditorConfig можно в настройках Editor | Code Style.
Кроме того, в настройках форматирования (Editor | Code Style) появилась опция Detect and use existing file indents for editing, которая позволяет редактору определять и использовать текущие настройки форматирования в файле:
Таким образом, даже если настройки стиля кода (такие как Use Tab Character и Indent Size) в редактируемом файле отличаются от настроек IDE, они будут сохраняться.
Улучшенный отладчик
При запуске проекта в режиме отладки теперь стала доступна интерактивная консоль, которая позволяет выполнять команды непосредственно в IDE с использованием в том числе и функции автодополнения кода:
При запуске тестов в режиме отладки интерактивная консоль доступна в виде отдельной вкладки:
Кроме того, в RubyMine 7 добавлена новая удобная функция отладчика: теперь значения объектов отображаются непосредственно в редакторе рядом с кодом:
Более интеллектуальный анализ кода
Благодаря идеям и замечаниям наших пользователей нам удалось сделать анализ кода в новой версии IDE еще умнее. Теперь в качестве атрибутов метода правильно распознаются также атрибуты YARD и методы RDoc:
Поддержка RVM в качестве удаленного SDK проекта
Удаленные интерпретаторы Ruby под управлением RVM теперь можно добавлять в качестве SDK проекта:
Кроме того, мы улучшили и поддержку удаленных SDK на основе файлов конфигурации vagrant.
Scratch-файлы
С помощью функции Scratch Files теперь можно экспериментировать и прототипировать код прямо в редакторе, не создавая при этом новые файлы в проекте. По шорткату Shift-Cmd-N / Ctrl+Alt+Shift+Insert вы можете создать временный файл, выбрав нужный тип файла. Все возможности редактора, например автодополнение кода и инспекции, доступны в Scratch-файлах:
И многое другое
RubyMine 7 также унаследовал от WebStorm 9 ряд улучшений для веб-разработки, включая предварительный просмотр для Emmet, поддержку последних версий CSS3, Stylus и Sass, реформатирование кода для Slim и HAML, поддержку ReactJS и JSX/ES6 и др.
Мы можем еще долго рассказывать о многих других, небольших, но от того не менее приятных и полезных новшествах RubyMine 7. Но не лучше ли просто попробовать новую версию в деле? Узнать подробнее о RubyMine 7 и скачать бесплатную 30-дневную пробную версию IDE вы можете на нашем сайте. Обновление бесплатно для всех пользователей, которые купили или обновили свои лицензии 13 ноября 2013 года или позднее. Также напоминаем о том, что все IDE от JetBrains теперь бесплатны для студентов.
Мы постараемся ответить на ваши вопросы в комментариях, а также будем рады любым новым реквестам в нашем баг-трекере.
Программируйте с удовольствием!
-Команда JetBrains
Автор: waggi