В RubyMine 2019.2 добавлена поддержка Rails 6 и Ruby 2.7, улучшен отладчик и поддержка YARD, а также включено множество платформенных улучшений.
В отладчике RubyMine для построчного отслеживания выполнения программы использовались события :line
из TracePoint. Для версии 2019.2 мы разработали собственное расширение для MRI, которое позволяет отладчику выбирать, на каких фрагментах кода выполнение должно быть приостановлено, и в режиме отладки программа работает быстрее. Это позволило значительно ускорить отладчик и реализовать новые функции, описанные ниже.
Раньше, если во время сеанса отладки вам встречалась строка кода с несколькими вызовами методов, RubyMine позволял войти только в первый метод на строке. Новая команда Smart Step Into снимает это ограничение и позволяет вам войти и исследовать каждый метод или блок, расположенный на одной строке.
В новой версии точки останова можно устанавливать не только на строке кода, но и на блоке. Если щелкнуть на левое поле, чтобы установить точку останова, RubyMine спросит, хотите ли вы установить ее на строке, на блоке или же и там, и там.
Подробнее об отладке в RubyMine скриптов на Ruby, в т. ч. с использованием Rails, можно узнать в статье Отладка в RubyMine.
RubyMine 2019.2 поддерживает механизм сопоставления с образцом, добавленный в первой предварительной версии Ruby 2.7 в качестве экспериментальной функциональности. IDE распознает новый синтаксис и помогает вам перемещаться между объектами, находить их вхождения и переименовывать их.
Новая версия RubyMine распознает синтаксис нумерованных параметров и может отображать и находить их вхождения. Нумерованные параметры также являются частью экспериментальной функциональности Ruby 2.7 и позволяют передавать параметры в блоки, используя номер параметра в качестве его имени по умолчанию, вместо того чтобы определять переменную блока.
RubyMine 2019.2 поддерживает Action Mailbox, который будет включен в Rails 6. IDE поддерживает автодополнение методов маршрутизации и callback-функций, а также переход между их реализациями и обращениями к ним.
Мы также добавили пару инспекций, которые сообщат вам, если вы забудете добавить вызов routing
в ApplicationMailbox
или метод process
в mailbox. Вторая инспекция также позволяет выполнить быстрое исправление.
Подробнее об использовании Action Mailbox вы можете узнать в этом выпуске GoRails.
Добавлена полноценная поддержка анализа кода для ActiveRecord::Enum
. Она включает в себя автодополнение, навигацию, а также поиск вхождений для имен значений типа enum и их методов. Также поддерживаются отрицательные области поиска (negative scopes) для значений типа enum, добавленные в Rails 6.
Мы постепенно улучшаем поддержку YARD, чтобы позволить вам создавать и управлять YARD-тегами, а также использовать в RubyMine улучшенное дополнение кода на основе YARD-аннотаций. В новой версии реализована поддержка аннотации типов и инспекций для тегов @overload
и @yieldparam
.
Подробнее о возможностях и недавних улучшениях в RubyMine, связанных с YARD, можно узнать в статье Поддержка YARD в RubyMine.
В версии 2019.2 можно переименовывать (Shift+F6) фабрики, последовательности и типажи (traits). IDE найдет их определения и предложит переименовать их, а также переименовать все их вхождения и сам файл, если его имя совпадает с названием фабрики.
Кроме того, мы добавили отображение фабрик, последовательностей и типажей на панели File Structure (Alt+F7) и в одноименном всплывающем окне (Ctrl + F12), а также реализовали возможность их безопасного удаления (Refactor | Safe Delete).
Новый интеншен Propagate to destructuring (Alt-Enter) позволяет заменять избыточные переменные еще одной деструктуризацией, если это возможно. Чтобы полностью убрать деструктуризацию, используйте интеншен Replace destructuring with property or index access.
Теперь, когда вы переименовываете идентификатор в файле JavaScript или TypeScript, IDE группирует динамические вхождения отдельно от остальных вхождений и по умолчанию исключает их из рефакторинга. Это позволяет проводить рефакторинг с большей точностью и дает вам возможность лучше контролировать переименование с помощью окна Refactoring Preview.
Автодополнение кода для компонентов и свойств компонентов, входящих в Vuetify, BootstrapVue, Quasar и некоторые другие библиотеки компонентов Vue, стало более точным. Это возможно благодаря новому подходу к работе с библиотеками Vue-компонентов, который мы реализовали в IDE.
Новая инспекция Duplicate code fragment в реальном времени проверяет ваш код и немедленно подсвечивает в редакторе потенциально дублирующиеся участки. Инспекция работает для кода на JavaScript, TypeScript, CSS, Sass, SCSS и Less.
Узнайте, что нового в WebStorm, — по ссылке вы найдете подробную информацию об улучшениях для JavaScript в RubyMine 2019.2.
В версии 2019.2 появилась возможность поддерживать разный стиль кода в разных частях проекта путем добавления нескольких файлов .editorconfig
. В дополнение к стандартным параметрам EditorConfig, которые давно поддерживаются в WebStorm, теперь вы можете использовать специальные свойства, которые охватывают все параметры стиля кода, доступные в IDE.
В новой версии реализована поддержка скриптов командных оболочек. В нее входит автодополнение слов и путей, быстрый доступ к документации, переименование идентификаторов в коде для файлов .sh
и .bash
и даже поддержка конфигураций запуска скриптов командных оболочек. В IDE также доступна интеграция с ShellCheck для проверки кода и shfmt для его форматирования.
Теперь RubyMine предлагает варианты автодополнения для имен файлов и папок в файлах .gitignore
. Используйте сочетание клавиш Ctrl-щелчок мышью на имени файла или папки для перехода к соответствующему объекту в окне Project. Вы также можете быстро добавлять файлы в .gitignore
с панели Project и из вкладки Local Changes — щелкните имя файла правой кнопкой мыши и выберите Add to .gitignore.
Теперь вы можете находить данные в базах данных, даже если не знаете их точного расположения. Кликните правой кнопкой мыши на источнике данных, по которому вы хотите выполнить поиск, и выберите Full-text Search (Ctrl+Alt+Shift+F). По запросу будут показаны только те строки, которые содержат нужные вам данные.
Узнайте, что нового в DataGrip, — по ссылке вы найдете подробную информацию об улучшениях в работе с базами данных в RubyMine 2019.2.