Новый способ исправления проблем в коде, 27 дополнительных intention-действий, поддержка Liquid, расширенная поддержка пул-реквестов GitHub и много других возможностей для Ruby, Rails, JS и работы с базами данных.
Мы добавили новый виджет, который показывает количество ошибок в текущем файле. Нажмите на него, чтобы открыть окно со списком проблем, из которого вы сможете перейти к некорректному коду и исправить ошибки прямо в окне.
RubyMine теперь поддерживает язык шаблонов Liquid. IDE обнаруживает проблемы с синтаксисом, предоставляет шаблоны часто используемых конструкций и форматирует код в соответствии с требованиями, указанными в настройках стиля кода.
В RubyMine 2020.2 много новых intention-действий (Alt+Enter) для быстрой оптимизации кода.
Действие Invert ‘if-else’ поможет инвертировать оператор if-else: изменить условие на противоположное и поменять ветки местами. Для тернарных операторов по тому же принципу работает действие Flip ‘?:’.
Используйте действие Merge nested ‘if’, чтобы преобразовать вложенный оператор в логическое выражение. Для вызова действия, поместите курсор во внешнее выражение if
.
Действие Split into multiple ‘ifs’ выполнит обратное преобразование.
С помощью действий Merge ‘else if’ и Split ‘elsif’ можно преобразовать оператор elsif
во вложенную ветку else/if
и наоборот.
Для ключевых слов elsif
и if
доступно действие Merge/split sequential ‘if’s. RubyMine предложит объединить две ветки, если в них содержится идентичный код. IDE объединит два условия с помощью оператора ||
и добавит круглые скобки, если необходимо. Действие Split into multiple ‘if’s произведет обратное преобразование.
Действие Expand namespace преобразует строки с операторами разрешения области видимости ::
во вложенные модули. Обратите внимание: действие Flatten namespace сворачивает модули, расположенные над оператором.
Действие Sort hashes by keys сортирует хеши по ключам в алфавитном порядке. Оно работает и для хешей с разными типами ключей. В этом случае ключи будут сгруппированы по типу, а затем отсортированы.
Действие Add clarifying parentheses работает для бинарных и тернарных выражений. IDE добавит круглые скобки в сложные выражения, чтобы уточнить приоритет операторов для корректного вычисления. Также можно удалить лишние скобки с помощью действия Remove unnecessary parentheses.
Действие Add underscores добавляет нижние подчеркивания в большие числа для удобства чтения. Поддерживаются целые, восьмеричные числа, числа с плавающей точкой (подчеркивание добавляется через каждые 3 цифры), шестнадцатеричные и двоичные числа (подчеркивание через каждые 4 символа/цифры).
Чтобы удалить нижние подчеркивания из числа, вызовите действие Remove underscores.
Используйте действие Introduce local variable, чтобы ввести новую локальную переменную, когда курсор находится внутри выражения.
Действие Inline local variable пригодится во время рефакторинга в случаях, когда осталась переменная, использованная только один раз.
Теперь можно преобразовывать блочные комментарии в однострочные и наоборот. Обратите внимание, что эти действия доступны только для комментариев, начинающихся в начале строки — это обязательное условие для блочных комментариев.
Для свернутых конструкций, таких как if
, while
и for
, RubyMine теперь отображает условие или используемые переменные на первой строке. Так легче понять, что содержит конструкция, не разворачивая ее.
Читать комментарии RDoc or YARD весьма неудобно из-за обилия тегов, особенно при взаимодействии со ссылками и изображениями. Поэтому мы добавили рендеринг документации прямо в редактор.
Для этого выберите опцию Render documentation comments в меню Preferences/Settings | Editor | General | Appearance.
RubyMine теперь поддерживает многострочные вставки heredoc, сохраняя при этом исходное форматирование и отступы. Это полезно при добавлении фрагментов кода на HTML или SQL.
Теперь можно перемещаться между переопределенным и переопределяющим методами с помощью intention-действия или значка на поле редактора.
Как и всегда, RubyMine поддерживает свежие возможности Ruby, например диапазоны без начального значения, которые появились в Ruby 2.7.
RubyMine предлагает более точные варианты автодополнения для множества методов стандартной библиотеки, например Array#sort_by
, Hash#each
и других.
Теперь можно легко преобразовать именованные параметры в нумерованные — синтаксис, появившийся в Ruby 2.7. Установите курсор внутри любого именованного параметра, нажмите Alt+Enter и выберите действие Convert named parameters to numbered. Для обратного преобразования используйте действие Convert numbered parameters to named.
Новые действия позволяют легко добавить методы attr_accessor
, attr_reader
и attr_writer
к переменным экземпляра. Для этого поместите курсор внутрь переменной и нажмите Alt+Enter.
В приложениях Rails, в которых используются «ленивые» ключи (lazy lookups), действие Expand lazy keys автоматически развернет ключ до полной формы. Если в контроллере есть «ленивый» ключ, RubyMine может спросить, как именно его следует развернуть, так как возможно несколько вариантов.
При работе с GitHub больше не нужно переключаться между браузером и IDE: все действия по обработке пул-реквестов можно выполнить прямо из RubyMine.
В версии 2020.2 вы можете просматривать, назначать и даже объединять пул-реквесты, читать встроенные комментарии и изучать хронологию, отправлять комментарии и ревью, а также принимать изменения.
Мы обновили дизайн диалогов Merge, Pull и Rebase — взаимодействовать с ними стало удобнее. Сразу видно, какая Git-команда будет выполнена.
Кроме того, мы добавили новые параметры, например –rebase
в диалоге Pull и –no-verify
в диалоге Merge.
Новые intention-действия (Alt+Enter) сэкономят ваше время. Например, можно быстро преобразовать цикл for
с числовым индексом в перебирающий метод forEach
. Кроме того, стало проще просматривать документирующие комментарии в файлах JavaScript и TypeScript: мы сделали рендеринг прямо в редакторе — теперь все четко и аккуратно.
Форматирование кода с помощью Prettier стало еще удобнее. Просто отметьте галочкой новую опцию On code reformat в настройках, и RubyMine будет использовать Prettier вместо встроенного форматера. По умолчанию это работает только для файлов .js
, .ts
, .jsx
и .tsx
, но вы можете легко добавить другие типы файлов.
В этой версии вас ждет поддержка Nuxt.js, настройки стиля кода для Vue, улучшенная обработка Vue-файлов в TypeScript-проектах и многое другое, что мы реализовали за последний год. Работать с проектами Vue в RubyMine стало еще удобнее.
Мы добавили полноценный редактор к ячейкам. Если в ячейке длинное значение, его удобно открыть в отдельной панели.
Просматривать и редактировать ячейки с типом boolean стало гораздо удобнее. Значения true помечены точкой, чтобы их можно было легко найти среди остальных.
Редактирование:
false
, true
, default
, null
, generated
или computed
) достаточно ввести первую букву: f
, t
, d
, n
, g
или c
. Array.to_h()
, Dir.each()
и т. п. not
в цепочках отношений active record. Теперь, если у метода where
нет никаких аргументов, автодополнение предложит подставить not
.