Привет, Хабр!
Сезон летних обновлений IDE на базе IntelliJ продолжается, и в этой серии мы расскажем, чему новому научился RubyMine в версиях 2018.1 и вышедшей на днях RubyMine 2018.2.
![](https://habrastorage.org/webt/mi/kx/6y/mikx6yii4ycxpgfilyz0ekqfote.png)
Run/Debug Anything
Постфиксное дополнение кода
Рендеринг диаграмм в маркдауне
Улучшенный анализ кода
Поддержка chruby и улучшения для менеджеров версий Ruby
Перезапуск упавших тестов
YAML
Присоединение отладчика к удаленным процессам
JavaScript
Git
Кое-что еще
Дискуссия в нашем пользовательском Slack-чате привела к созданию удобного инструмента для запуска различных конфигураций и команд — Run Anything. Принцип его работы в чем-то схож с Search Everywhere. Однако вместо поиска чего угодно, Run Anything по двойному нажатию Ctrl позволяет запустить что угодно: rake-таски,
![](https://habrastorage.org/webt/cg/vj/3h/cgvj3h7dxylwvxxz_isoq9nwvdg.gif)
Более того, если при вызванном Run Anything зажать Shift, то инструмент перейдет в режим Debug Anything, что позволяет удобно запускать отладчик.
![](https://habrastorage.org/webt/7q/5d/ul/7q5dulhowiqhit4lajf1odc7tmi.gif)
Кстати, как вы можете заметить, RubyMine запоминает ранее запущенные команды и скрипты и в будущем предложит их в выпадающем списке. Подробнее.
Данная фича позволяет видоизменять, переворачивать и дополнять выражения без необходимости возврата в начало строки, для того чтобы, например, вставить условие. Теперь можно просто поставить точку и выбрать
![](https://habrastorage.org/webt/nu/mg/jw/numgjwnnhvrkoqqmjdetjm4tumi.gif)
Полный список поддерживаемых постфиксных темплейтов можно посмотреть в настройках (Preferences / Settings | Editor | General | Postfix Completion). Там же можно и отключить неактуальные. Подробнее.
Превью маркдаун-файлов научилось отрисовывать диаграммы, которые есть в коде. Вставьте
![](https://habrastorage.org/webt/pl/z5/1v/plz51vo02snqqxgbjxb5c09gtsu.gif)
Отметим, что поддержка Markdown осуществляется через плагин, совместимый с другими IDE от JetBrains. В RubyMine и IntelliJ IDEA Ultimate плагин установлен по умолчанию.
Мы существенно переписали вывод типов и механизм анализа Ruby-файлов. Благодаря этому значительно улучшилось автодополнение и навигация по коду.
![](https://habrastorage.org/webt/ld/nr/h5/ldnrh52c8dpty3e2bfujmw0peo0.gif)
Как видно на изображении, появилось новое действие для просмотра типа переменной. Вызвать его можно, нажав Ctrl+Shift+P (View | Expression Type). Подробнее.
Также в новом релизе доступно автодополнение и навигация к моделям с полиморфными связями. Подробнее.
![](https://habrastorage.org/webt/85/jw/bh/85jwbhslns_vd-ed88kzwcab-pi.gif)
В новой версии добавлена поддержка chruby и asdf. Вместе с тем все поддерживаемые менеджеры версий (RVM, rbenv, chruby, и asdf) стали доступны при подключении через WSL, Docker, а также через SSH и другие удаленные соединения.
Напомним, настроить удаленную SDK можно следующим образом: Preferences / Settings | Languages & Frameworks | Ruby SDK and Gems | New remote.
![](https://habrastorage.org/webt/ck/5f/f_/ck5ff_r51qbb-_ueycy18qp8hzw.png)
Теперь после запуска тестов можно отдельно перезапустить только те, которые не прошли. Просто нажмите на соответствующую иконку.
![](https://habrastorage.org/webt/tr/r9/nx/trr9nxfes-hlmtfb0hlxeenn6hc.gif)
Новая возможность также доступна при использовании пресетов типа
Поддержка YAML была значительно расширена для всех IDE на базе IntelliJ. Прежде всего, мы добавили возможность форматирования кода в файлах
![](https://habrastorage.org/webt/a4/rc/zx/a4rczxjwfzkj6cm-fg33femh0hi.gif)
Появилась навигация по коду, автодополнение и поиск использований якорей (
![](https://habrastorage.org/webt/6t/uo/9b/6tuo9bvln3xzp0sjasksqhpszzm.gif)
Также, якоря и ссылки можно переименовывать в одно действие (Shift+F6). Чтобы избежать конфликтов, IDE предупредит о том, что вы пытаетесь использовать имя уже существующего якоря. Подробнее.
![](https://habrastorage.org/webt/bg/dx/dc/bgdxdccwfcbipzzygzxtvkteuym.gif)
Среди других улучшений — поддержка JSON Schema для автодополнения соответствующих конфигураций в YAML, а также возможность копирования пути к значению в YAML-файлах. Подробнее.
![](https://habrastorage.org/webt/ac/5u/p7/ac5up7g_-ck-sutfpacvxqose0o.gif)
![](https://habrastorage.org/webt/ks/np/v2/ksnpv2fucq7qka2dli9gni3zvh8.gif)
В версии 2016.3 мы анонсировали возможность присоединения отладчика к запущенным локальным процессам и пообещали добавить возможность присоединения к удаленным. В свежей версии мы реализовали обещанное!
Чтобы начать отладку, подключитесь к удаленному серверу через SSH (Preferences/Settings | Ruby SDK and Gems | New Remote | SSH Credentials). Не забудьте указать путь к интерпретатору Ruby.
![](https://habrastorage.org/webt/uv/rv/xh/uvrvxh9qp2plr5cedwyuwwmimry.png)
Дополнительно можно связать локальную версию приложения с той, что запущена на сервере (Edit Path Mappings). Это упростит расстановку брейкпоинтов в любом месте приложения для дальнейшей отладки.
![](https://habrastorage.org/webt/wg/yv/dq/wgyvdqjhok00oyzyv7n7tjyr8hs.png)
Теперь вы готовы к отладке удаленных процессов! Чтобы начать, выберите Run | Attach to Process или же найдите соответствующее действие, вызвав окно Find Action (Help | Find Action), как указано на картинке:
![](https://habrastorage.org/webt/50/mg/ak/50mgak_p54smm0lkblukqtucyfk.png)
Подробнее о настройке отладки удаленных процессов читайте в нашем блоге.
Подробнее об улучшениях JavaScript можно узнать из видео:
Файлы, содержащие конфликты, теперь удобно группируются под пунктом Merge Conflicts. Нажав на Resolve вы ожидаемо попадете в диалог Files Merged with Conflicts.
![](https://habrastorage.org/webt/as/eq/8k/aseq8knlfzdsauwyvorktau9uky.png)
Еще одна новая удобная опция, Browse repository at revision, позволяет просматривать более ранние версии репозитория. Активировать опцию можно, вызвав контекстное меню на нужном коммите в Git-логе. IDE откроет Project tool window, из которого можно перейти к просмотру более ранних версий файлов приложения.
![](https://habrastorage.org/webt/qk/up/ck/qkupckooob6pfq4th1_ocerqk4a.png)
В новой версии можно закоммитить изменения, минуя диалог Push. Для этого уберите соответствующую галочку в Preferences / Settings | Version Control | Git. Если вы нажмете Commit and Push (??K | Ctrl+Alt+K) при следующем коммите в диалоге Commit Changes, IDE не станет дополнительно отображать диалог Push, а сразу отправит изменения в репозиторий.
![](https://habrastorage.org/webt/m-/0b/zo/m-0bzop2bv14j4hgc1rho38uvjk.png)
В новой версии вы также обнаружите улучшенный CoffeeScript, возможность использования разных аккаунтов GitHub, обновленные иконки и поддержку тачбара на макбуках.
Скачать новую версию можно на странице What’s new. Напоминаем, что первые 30 дней можно пользоваться RubyMine бесплатно.
Сезон летних обновлений IDE на базе IntelliJ продолжается, и в этой серии мы расскажем, чему новому научился RubyMine в версиях 2018.1 и вышедшей на днях RubyMine 2018.2.
![](https://habrastorage.org/webt/mi/kx/6y/mikx6yii4ycxpgfilyz0ekqfote.png)
Оглавление
Run/Debug Anything
Постфиксное дополнение кода
Рендеринг диаграмм в маркдауне
Улучшенный анализ кода
Поддержка chruby и улучшения для менеджеров версий Ruby
Перезапуск упавших тестов
YAML
Присоединение отладчика к удаленным процессам
JavaScript
Git
Кое-что еще
Run/Debug Anything
Дискуссия в нашем пользовательском Slack-чате привела к созданию удобного инструмента для запуска различных конфигураций и команд — Run Anything. Принцип его работы в чем-то схож с Search Everywhere. Однако вместо поиска чего угодно, Run Anything по двойному нажатию Ctrl позволяет запустить что угодно: rake-таски,
rails s
, тесты и другие конфигурации, а также консольные команды.![](https://habrastorage.org/webt/cg/vj/3h/cgvj3h7dxylwvxxz_isoq9nwvdg.gif)
Более того, если при вызванном Run Anything зажать Shift, то инструмент перейдет в режим Debug Anything, что позволяет удобно запускать отладчик.
![](https://habrastorage.org/webt/7q/5d/ul/7q5dulhowiqhit4lajf1odc7tmi.gif)
Кстати, как вы можете заметить, RubyMine запоминает ранее запущенные команды и скрипты и в будущем предложит их в выпадающем списке. Подробнее.
Постфиксное дополнение кода
Данная фича позволяет видоизменять, переворачивать и дополнять выражения без необходимости возврата в начало строки, для того чтобы, например, вставить условие. Теперь можно просто поставить точку и выбрать
if
. IDE поместит условие в начало строки автоматически. Если же возможных вариантов будет несколько, то RubyMine предложит выбрать нужный из списка.![](https://habrastorage.org/webt/nu/mg/jw/numgjwnnhvrkoqqmjdetjm4tumi.gif)
Полный список поддерживаемых постфиксных темплейтов можно посмотреть в настройках (Preferences / Settings | Editor | General | Postfix Completion). Там же можно и отключить неактуальные. Подробнее.
Рендеринг диаграмм в маркдауне
Превью маркдаун-файлов научилось отрисовывать диаграммы, которые есть в коде. Вставьте
puml
перед кодом диаграммы в .md
-файле, чтобы RubyMine подхватил синтаксис и отобразил диаграмму в превью. Подробнее.![](https://habrastorage.org/webt/pl/z5/1v/plz51vo02snqqxgbjxb5c09gtsu.gif)
Отметим, что поддержка Markdown осуществляется через плагин, совместимый с другими IDE от JetBrains. В RubyMine и IntelliJ IDEA Ultimate плагин установлен по умолчанию.
Улучшенный анализ кода
Мы существенно переписали вывод типов и механизм анализа Ruby-файлов. Благодаря этому значительно улучшилось автодополнение и навигация по коду.
![](https://habrastorage.org/webt/ld/nr/h5/ldnrh52c8dpty3e2bfujmw0peo0.gif)
Как видно на изображении, появилось новое действие для просмотра типа переменной. Вызвать его можно, нажав Ctrl+Shift+P (View | Expression Type). Подробнее.
Также в новом релизе доступно автодополнение и навигация к моделям с полиморфными связями. Подробнее.
![](https://habrastorage.org/webt/85/jw/bh/85jwbhslns_vd-ed88kzwcab-pi.gif)
Поддержка chruby и улучшения для менеджеров версий Ruby
В новой версии добавлена поддержка chruby и asdf. Вместе с тем все поддерживаемые менеджеры версий (RVM, rbenv, chruby, и asdf) стали доступны при подключении через WSL, Docker, а также через SSH и другие удаленные соединения.
Напомним, настроить удаленную SDK можно следующим образом: Preferences / Settings | Languages & Frameworks | Ruby SDK and Gems | New remote.
![](https://habrastorage.org/webt/ck/5f/f_/ck5ff_r51qbb-_ueycy18qp8hzw.png)
Перезапуск упавших тестов
Теперь после запуска тестов можно отдельно перезапустить только те, которые не прошли. Просто нажмите на соответствующую иконку.
![](https://habrastorage.org/webt/tr/r9/nx/trr9nxfes-hlmtfb0hlxeenn6hc.gif)
Новая возможность также доступна при использовании пресетов типа
rake test
и rake spec
.YAML
Поддержка YAML была значительно расширена для всех IDE на базе IntelliJ. Прежде всего, мы добавили возможность форматирования кода в файлах
.yml
. Для форматирования используйте комбинацию клавиш ??L / Ctrl+Alt+L (Code | Reformat Code). Подробнее.![](https://habrastorage.org/webt/a4/rc/zx/a4rczxjwfzkj6cm-fg33femh0hi.gif)
Появилась навигация по коду, автодополнение и поиск использований якорей (
&
) и их ссылок (*
).![](https://habrastorage.org/webt/6t/uo/9b/6tuo9bvln3xzp0sjasksqhpszzm.gif)
Также, якоря и ссылки можно переименовывать в одно действие (Shift+F6). Чтобы избежать конфликтов, IDE предупредит о том, что вы пытаетесь использовать имя уже существующего якоря. Подробнее.
![](https://habrastorage.org/webt/bg/dx/dc/bgdxdccwfcbipzzygzxtvkteuym.gif)
Среди других улучшений — поддержка JSON Schema для автодополнения соответствующих конфигураций в YAML, а также возможность копирования пути к значению в YAML-файлах. Подробнее.
![](https://habrastorage.org/webt/ac/5u/p7/ac5up7g_-ck-sutfpacvxqose0o.gif)
![](https://habrastorage.org/webt/ks/np/v2/ksnpv2fucq7qka2dli9gni3zvh8.gif)
Присоединение отладчика к удаленным процессам
В версии 2016.3 мы анонсировали возможность присоединения отладчика к запущенным локальным процессам и пообещали добавить возможность присоединения к удаленным. В свежей версии мы реализовали обещанное!
Чтобы начать отладку, подключитесь к удаленному серверу через SSH (Preferences/Settings | Ruby SDK and Gems | New Remote | SSH Credentials). Не забудьте указать путь к интерпретатору Ruby.
![](https://habrastorage.org/webt/uv/rv/xh/uvrvxh9qp2plr5cedwyuwwmimry.png)
Дополнительно можно связать локальную версию приложения с той, что запущена на сервере (Edit Path Mappings). Это упростит расстановку брейкпоинтов в любом месте приложения для дальнейшей отладки.
![](https://habrastorage.org/webt/wg/yv/dq/wgyvdqjhok00oyzyv7n7tjyr8hs.png)
Теперь вы готовы к отладке удаленных процессов! Чтобы начать, выберите Run | Attach to Process или же найдите соответствующее действие, вызвав окно Find Action (Help | Find Action), как указано на картинке:
![](https://habrastorage.org/webt/50/mg/ak/50mgak_p54smm0lkblukqtucyfk.png)
Подробнее о настройке отладки удаленных процессов читайте в нашем блоге.
JavaScript
- Добавлен набор новых быстрых дополнений кода (Alt+Enter) для JavaScript и TypeScript: Implement interface, Create derived class, Implement members of an interface or abstract class, Generate cases for 'switch' и другие.
- В IDE стали доступны все новые возможности TypeScript 2.9 и TypeScript 3.0.
- Добавлен Annotate with type from JSDoc и другие быстрые исправления из TypeScript Language Service.
- Появилась возможность извлечения компонентов React (Refactor | Extract Component) и конвертации классовых компонентов в функциональные (и наоборот).
- В файлах
.vue
стало доступно автодополнение для событий и их обработчиков.
Подробнее об улучшениях JavaScript можно узнать из видео:
Git
Файлы, содержащие конфликты, теперь удобно группируются под пунктом Merge Conflicts. Нажав на Resolve вы ожидаемо попадете в диалог Files Merged with Conflicts.
![](https://habrastorage.org/webt/as/eq/8k/aseq8knlfzdsauwyvorktau9uky.png)
Еще одна новая удобная опция, Browse repository at revision, позволяет просматривать более ранние версии репозитория. Активировать опцию можно, вызвав контекстное меню на нужном коммите в Git-логе. IDE откроет Project tool window, из которого можно перейти к просмотру более ранних версий файлов приложения.
![](https://habrastorage.org/webt/qk/up/ck/qkupckooob6pfq4th1_ocerqk4a.png)
В новой версии можно закоммитить изменения, минуя диалог Push. Для этого уберите соответствующую галочку в Preferences / Settings | Version Control | Git. Если вы нажмете Commit and Push (??K | Ctrl+Alt+K) при следующем коммите в диалоге Commit Changes, IDE не станет дополнительно отображать диалог Push, а сразу отправит изменения в репозиторий.
![](https://habrastorage.org/webt/m-/0b/zo/m-0bzop2bv14j4hgc1rho38uvjk.png)
Кое-что еще
В новой версии вы также обнаружите улучшенный CoffeeScript, возможность использования разных аккаунтов GitHub, обновленные иконки и поддержку тачбара на макбуках.
Скачать новую версию можно на странице What’s new. Напоминаем, что первые 30 дней можно пользоваться RubyMine бесплатно.