Что нового в RubyMine 2020.3

Поддержка Git-стейджинга, удобное управление вкладками в редакторе, интерактивные подсказки и inline watches в отладчике, улучшенный терминал и анализ покрытия кода, а также много новых возможностей для Ruby, Rails и работы с базами данных.

Редактор кода

Удобное управление вкладками редактора

Мы упростили работу с несколькими вкладками. Теперь можно разделить область редактора при открытии файла, нажав Shift+Enter. Это работает на панели Project и в диалоге Search Everywhere. Вы также можете перетаскивать вкладки и делить ими экран по вертикали и по горизонтали.

Закрепленные вкладки

Закрепленные вкладки

Закрепленные вкладки теперь отображаются в самом начале панели вкладок. Также можно собрать все закрепленные вкладки в отдельный ряд: выберите опцию Show pinned tabs in a separate row в меню Preferences / Settings | Editor | General | Editor Tabs. Еще мы добавили новый значок, указывающий, что вкладка закреплена. Кликните по нему, чтобы открепить вкладку.

Улучшения в Markdown-редакторе

Улучшения в Markdown-редакторе

Теперь можно форматировать файлы Markdown, используя сочетание клавиш Ctrl+Alt+L.

Чтобы настроить формат Markdown, перейдите в Preferences / Settings | Editor | Code Style | Markdown. Кнопка Auto-Scroll Preview в правом верхнем углу редактора позволяет синхронизировать прокрутку редактора и панели предварительного просмотра. We’ve also added support for Mermaid.js.

Взаимодействие с IDE

Обновленный начальный экран

Обновленный начальный экран

Начальный экран RubyMine выглядит по-новому. Теперь там четыре вкладки: Projects для доступа к проектам, Customize для настройки интерфейса, Plugins для управления плагинами и Learn RubyMine для знакомства с возможностями IDE.

Синхронизация темы IDE c системными настройками

Синхронизация темы IDE c системными настройками

Цветовую схему RubyMine теперь можно синхронизировать с темой вашей операционной системы: перейдите в меню Preferences / Settings | Appearance & Behavior | Appearance | Theme и выберите опцию Sync with OS. В зависимости от системных настроек будет автоматически включаться светлая или темная тема.

Режим чтения

Режим чтения

В этом режиме файлы, доступные только для чтения, и файлы из внешних библиотек отображаются формате, в котором их удобно читать. Режим включается и выключается нажатием на значок книги в правом верхнем углу редактора, а настраивается в меню Settings / Preferences | Editor | Reader Mode.

Улучшения режима LightEdit

Улучшения режима LightEdit

Мы добавили параметр -e (--edit) для открытия файлов в режиме LightEdit из командной строки. Если вы запускаете RubyMine из командной строки, введите -e, а затем имя файла, который нужно открыть, или просто -e без имени файла — тогда откроется предыдущий сеанс.

Подробнее

Быстрые исправления опечаток

Быстрые исправления опечаток

RubyMine 2020.3 помогает избежать опечаток. IDE предлагает варианты исправления орфографических ошибок прямо в меню Alt+Enter, как и быстрые исправления для кода.

Мы также добавили действие Transpose: можно быстро поменять местами два соседних символа.

Обновленный диалог Search Everywhere

Обновленный диалог Search Everywhere

В диалоге Search Everywhere появилась вкладка Git. Теперь можно искать ветки, теги, хэши и сообщения коммитов. А еще в строке поиска работает простой калькулятор.

Предпросмотр файлов

Предпросмотр файлов

Чтобы быстро найти нужный файл, воспользуйтесь новой функцией предпросмотра: выберите файл на панели Project и нажмите пробел. Если вы хотите, чтобы IDE всегда показывала превью при выборе файла, нажмите на значок шестеренки на панели Project и отметьте галочками опции Enable Preview Tab и Open Files with Single Click.

Ruby

Поддержка грядущей версии Ruby 3.0

Поддержка грядущей версии Ruby 3.0

RubyMine 2020.3 features basic support for the new syntax that comes with Ruby 3.0 preview. Уже можно попробовать большинство новых возможностей, включая определение метода без слова end (endless method definition).

Обратите внимание, что мы еще работаем над поддержкой Ruby 3.0. Features like code assistance and RBS support will be properly implemented after the Ruby 3.0 release version is out. Мы внимательно следим за происходящим и планируем полностью поддержать Ruby 3.0 в следующих релизах.

Терминал использует версию Ruby, указанную в проекте

Терминал использует версию Ruby, указанную в проекте

При работе над несколькими проектами бывает, что в них используются разные версии Ruby. Встроенный эмулятор терминала теперь использует версию языка, выбранную в текущем проекте. Он также указывает, какая именно версия используется при запуске терминала.

Поддержка интерпретаторов с настраиваемым окружением

Поддержка интерпретаторов с настраиваемым окружением

RubyMine now allows you to configure custom environments for your projects using tools like shadowenv or direnv. Это удобно, когда у вас несколько проектов, для каждого из которых требуются разные переменные окружения. Любые команды Ruby, запускаемые в RubyMine, будут выполняться с использованием указанных переменных.

Подробнее

Поддержка консоли Pry

Поддержка консоли Pry

Теперь в RubyMine можно использовать консоль Pry вместо IRB. Make sure that you have the pry gem installed in your project, then go to Tools | Run Pry to launch the console.

Rails

Улучшенная поддержка роутинга в Rails

Улучшенная поддержка роутинга в Rails

Мы максимально упростили работу с routes.rb.
Используйте Ctrl+Alt+Home для быстрой навигации между маршрутом в routes.rb и связанными моделями, представлениями и контроллерами. Нажатие Ctrl+click на методе в routes.rb позволит перейти к связанному методу в контроллере.

Мы также улучшили автодополнение для routes.rb. Например, оно теперь работает для всех помощников Match и HTTP (get, post, put и т. д.), а также для resources, namespace и scope.

Поддержка structure.sql

Поддержка structure.sql

В RubyMine 2020.3 появилась поддержка файлов structure.sql для проектов, в которых они используются вместо schema.rb. Теперь работает автодополнение для моделей, основанных на structure.sql, и можно перемещаться между объектами Rails и structure.sql с помощью клавиатуры: Ctrl+Alt+Home.

Интеграция с системами контроля версий

Поддержка Git-стейджинга

Поддержка Git-стейджинга

В новой версии появилась поддержка Git-стейджинга. Вы можете добавлять файлы на стейджинг и убирать их оттуда, нажимая на значки + и в окне Commit. Вы также можете добавлять файлы через поле редактора или вкладку Diff.

Чтобы включить эту функцию, перейдите в Settings / Preferences | Version Control | Git и отметьте галочкой опцию Enable staging area.

Подробнее

Обновленное меню VCS

Обновленное меню VCS

Мы изменили порядок действий по работе с VCS в главном меню, чтобы было проще пользоваться самыми необходимыми. Если у вас в проекте используется только Git, меню VCS теперь будет выглядеть так:

Конфигурации запуска

Возможность поделиться конфигурацией запуска

Возможность поделиться конфигурацией запуска

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

Конфигурации запуска можно сохранять в виде файлов XML и добавлять в VCS: перейдите в Run | Edit Configurations, выберите конфигурацию, которой вы хотите поделиться, отметьте галочкой опцию Store as a project file и нажмите Apply.

Подробнее

Тестирование

Анализ покрытия кода в ветках и подпроцессах

В проектах, использующих simplecov для анализа покрытия кода, RubyMine теперь показывает информацию о покрытии веток и подпроцессов.

Подробнее

Улучшения в поддержке FactoryBot

Теперь можно перемещаться между фабрикой и связанными с ней объектами с помощьюCtrl+Alt+Home. Автодополнение теперь предлагает атрибуты моделей для таких стратегий Factory Bot, как build и create.

Отладчик

Интерактивные подсказки

Интерактивные подсказки

В режиме отладки подсказки для переменных стали интерактивными. Чтобы изменить значение поля переменной, кликните на подсказку, нажмите Set Value, задайте новое значение и нажмите Enter.

Отслеживание значений переменных

Отслеживание значений переменных

В RubyMine 2020.3 появился новый тип watch expressions. Эти выражения связаны с определенным контекстом и отображаются прямо в редакторе. Их можно добавить, используя интерактивную подсказку: откройте подсказку и нажмите Add Inline Watch. Вы можете управлять inline watches в новом узле Inline Watches на вкладке Variables в окне Debug.

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

Поддержка Couchbase

Поддержка Couchbase

RubyMine 2020.3 поддерживает еще одну базу данных — Couchbase. Обратите внимание: RubyMine работает с Couchbase Query, а не с Couchbase Analytics.

SQL для MongoDB

SQL для MongoDB

Теперь можно использовать SQL для запросов к MongoDB.

Code With Me

Поддержка совместного редактирования кода

Поддержка совместного редактирования кода

RubyMine 2020.3 поддерживает Code With Me (EAP) — наш новый инструмент для парного программирования и совместной разработки. С его помощью вы и ваша команда можете вместе работать над проектами прямо из своих IDE.

На данный момент Code With Me находится в активной разработке и содержит известные проблемы. Сообщайте нам о любых ошибках и голосуйте за исправления и новые функции в нашем трекере.

Подробнее

Другие улучшения

  • Мы обновили некоторые настройки стиля кода, чтобы они соответствовали стилю RuboCop по умолчанию.
  • При открытии файла из панели Project фокус ввода автоматически переносится в редактор, чтобы вы могли сразу начать работу с кодом.
  • Две самые популярные кнопки — Commit и Commit and Push… — теперь отображаются в окне Commit.
  • Патчи теперь по умолчанию создаются в Git-формате, а не в формате VCS, используемой в проекте.
  • RubyMine автоматически исправляет недопустимые символы в именах веток.
  • Все действия, связанные с текущей веткой, теперь отображаются в ее контекстном меню.
  • Теперь можно добавлять пользовательские шаблоны, которые создают несколько файлов за раз.
  • Теперь можно экспортировать HTTP-запросы в cURL.
  • Мы обновили формат HTTP-запросов. Чтобы преобразовать существующие HTTP-запросы в новый формат, выберите HTTP-запрос в представлении Project, а затем опцию Convert Legacy REST Client File to New Format в контекстном меню.
  • Расширенная поддержка Swagger: Swagger Hub, внешние ссылки и различные улучшения в механизме анализа кода.
  • Улучшенная поддержка Kubernetes.