Что нового в RubyMine 2020.1

Мы улучшили навигацию и помощь при написании кода, упростили создание тестов, добавили режим LightEdit, новые возможности в отладчике, поддержке Docker, системах контроля версий, JS и инструментах для работы с базами данных.

Навигация

Навигация между сущностями Rails

Навигация между сущностями Rails

Теперь можно быстро переключаться между сущностями Rails и схемой базы данных (Ctrl+Alt+Home). А навигационное меню стало проще и компактнее.

Улучшенная навигация между методами

Navigate | Go to Super Method (Ctrl+U) теперь позволяет выбирать родительский метод, к которому вы хотите перейти.

Кроме того, можно искать использования (Alt+F7) родительских методов.

Навигация по структуре

Навигация по структуре

На панели Structure (Ctrl+7) можно отфильтровать переменные, чтобы отображались только методы.

Ruby 2.7

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

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

Как и всегда, мы поддерживаем свежую версию Ruby, в том числе новый синтаксис нумерованных параметров '_'. IDE распознает новый синтаксис и помогает перемещаться между объектами, переименовывать их и находить использования.

Запуск и отладка

Запуск задач Rake из поля редактора

Запуск задач Rake из поля редактора

В версии 2020.1 можно запускать, отлаживать и профилировать задачи Rake из меню в левом поле редактора. Как всегда, RubyMine автоматически создаст необходимые конфигурации запуска/отладки для запускаемых задач.

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

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

Терминал RubyMine теперь умеет анализировать команды. Когда терминал распознает введенную команду, он ее подсвечивает. Если вы нажмете Ctrl-Enter, откроется диалог с параметрами, которые можно установить для выполнения этой команды.

Чтобы попробовать эту функцию, включите флаг terminal.shell.command.handling в диалоге Experimental Features.

Подробнее

Прикрепленные поля переменных

Прикрепленные поля переменных

Теперь в отладчике на вкладке Variables можно закрепить поля переменных в верхней части списка и видеть их значения в представлении переменной.

Тесты

Создание тестов на основе пути

Создание тестов на основе пути

RubyMine теперь умеет создавать новые тесты для классов и сохранять их в нужной папке. Путь к ней IDE строит на основе пути к объекту, для которого создан тест.

Подробнее

Помощь при написании кода

Автодополнение на основе машинного обучения

Автодополнение на основе машинного обучения

Используя машинное обучение, RubyMine сортирует варианты автодополнения по их актуальности. Мы активно работаем над таким автодополнением, чтобы в будущем сделать его еще полезнее.

Docker

Улучшения для Docker Compose

Улучшения для Docker Compose

С RubyMine 2020.1 вы можете запускать, отлаживать и тестировать свое приложение в заранее настроенном окружении, используя Docker Compose в качестве удаленного интерпретатора. Вы можете настроить, как выполнять в Docker различные команды, например which ruby, gem env и rbconfig.

Подробнее

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

Режим LightEdit

Режим LightEdit

Новый режим LightEdit работает как простой текстовый редактор. В нем RubyMine запускается и работает быстрее, чем в обычном режиме, потому что открывает файлы, не загружая проект.

Режим полного погружения

Режим полного погружения

Режим Zen помогает полностью сосредоточиться на коде: редактор занимает весь экран, а все остальные элементы интерфейса скрыты. Чтобы попробовать его, нажмите Ctrl+` и выберите View mode | Enter Zen Mode.

Конфигурация IDE

Настройки конфигураций SSH в одном месте

Настройки конфигураций SSH в одном месте

Для управления конфигурациями SSH появилась новая вкладка настроек: Preferences/Settings | Tools | SSH Configurations. Используйте ее для добавления, редактирования, хранения и удаления конфигураций.

Подробнее

Гибкий совместный доступ к конфигурациям запуска

Гибкий совместный доступ к конфигурациям запуска

В RubyMine 2020.1 удобнее управлять конфигурациями запуска, потому что теперь их можно хранить в любой папке проекта. Для этого установите флажок Store as project file и укажите путь к папке, в которой вы хотите сохранить файл с конфигурацией запуска.

Подробнее

Терминал

Параллельное отображение сеансов терминала

Параллельное отображение сеансов терминала

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

Системы контроля версий

Обновленный диалог перебазирования

Обновленный диалог перебазирования

Мы переделали диалог Interactively Rebase from Here: теперь в нем можно редактировать историю коммитов, чтобы сделать ее линейной и понятной.

Подробнее

Диалог коммита / окно коммита

Диалог коммита / окно коммита

В RubyMine 2020.1 мы добавили окно Commit в качестве альтернативы диалогу коммита. Переключиться можно в меню Preferences / Settings | Version Control | Commit | Use non-modal commit interface.

Новое окно расположено слева — остается достаточно места для просмотра различий.

Подробнее

Улучшенное окно Branches

Улучшенное окно Branches

Вот что изменилось:

  • Мы добавили поле поиска: ищите в нем существующие удаленные и локальные ветки.
  • Кнопка Refresh теперь обновляет существующие удаленные ветки.
  • В строке состояния появились индикаторы входящих (синие) и исходящих (зеленые) коммитов.

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

Результаты запросов в редакторе

Результаты запросов в редакторе

Теперь результаты запросов к базе данных можно просматривать в редакторе. Эта функция включается на панели инструментов или в меню Settings/Preferences | Database | General | Show output results in the editor. Данные отображаются в виде таблицы, дерева или текста.

Результаты запросов можно экспортировать в Excel.

Конфигурации запуска для скриптов баз данных

Конфигурации запуска для скриптов баз данных

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

JavaScript/TypeScript

Новые действия и инспекции

Новые действия и инспекции

Новые действия и инспекции (Alt+Enter) сэкономят ваше время. Например, можно быстро преобразовать код в optional chaining и/или nullish coalescing — синтаксис, появившийся в последних версиях JavaScript и TypeScript.

Полезные данные в документации

Полезные данные в документации

Документация для JavaScript и TypeScript теперь содержит информацию о типе и видимости символа, а также о том, где этот символ определен.

Vue.js: поддержка Vuex и Composition API

Vue.js: поддержка Vuex и Composition API

Благодаря встроенной поддержке библиотеки Vuex и Composition API из Vue 3 создавать приложения Vue.js стало еще проще.

Запуск Prettier при сохранении файлов

Запуск Prettier при сохранении файлов

Новая опция Run on save for files позволяет применять форматирование Prettier ко всем файлам, указанным в настройках IDE и отредактированным в проекте, как только вы их сохраните. Для этого больше не нужны плагины или file watchers.

Другие изменения

  • Мы переходим на JetBrains Runtime 11 (JBR11) и больше не будем выпускать сборки с JetBrains Runtime 8 (JBR8). Это касается всех обновлений 2020.1, как в IDE, так и в приложении Toolbox App.
  • Светлая тема теперь выглядит одинаково во всех операционных системах и называется IntelliJ Light.
  • Наш новый шрифт JetBrains Mono включен по умолчанию во всех IDE на платформе IntelliJ.
  • Добавили возможность автоматического импорта настроек IDE.
  • Если у вас не установлен Git, RubyMine сообщит об этом и предложит его загрузить и установить.
  • Всплывающее окно документации теперь появляется при наведении указателя мыши на символ. Такое поведение можно отключить в меню Settings/Preferences | Editor | General.
  • Новая инспекция предупредит о недопустимых вызовах закрытых/защищенных методов.