Изменения для Rust
Одношаговые макрорасширения (expansions). Команда JetBrains полностью переделала движок для макрорасширений, который теперь разбивает процесс на одиночные шаги. Это поможет избежать мерцания экрана и значительно ускорит систему.
Плагин всё также имеет предел в 64 шага, поэтому расширения с большим числом шагов не будут адаптированы полностью. Разработчики сказали, что продолжают работать над этим.
Определения имён. Движок для определения имён теперь поддерживает macros 2.0, объявленные внутри функций.
Кроме этого, разработчики добавили изменения для макросов в документации к тестам:
- исправили определения имён для macros 2.0 в doctest;
- плагин начал правильно обрабатывать атрибуты процедурных макросов в doctest.
Поддержка inline_const, inline_const_pat and ~const. IntelliJ Rust теперь умеет правильно парсить синтаксис выражений inline_const и inline_const_pat, который позволяет использовать строчные константы. Эта возможность пока находится в стадии тестирования.
Ещё добавили поддержку тильдовых констант — ~const.
Кодовые подсказки
Extract-trait-рефакторинг. С ним пользователи смогут быстро доставать методы из impl-блоков и создавать из них отдельные trait-свойства.
То же самое можно делать и с самими trait-свойствами:
Улучшенное машинное автодополнение. Разработчики доработали модель машинного обучения, которая предлагает подсказки в коде. Теперь она умеет следующее:
- выдавать выше предложения с похожим ожидаемым типом выражений;
- отличать inherent-, trait- и blanket-имплементации;
- узнавать async-, const— и unsafe-контексты.
Инспектор ненужных путей. Он умеет определять ненужные зависимости через unused_qualification-линтер. Если библиотека или метод импортируются в другом модуле, то его не нужно будет определять снова.
Дебагер
Выбор способов запуска. Разработчики добавили поддержку различных способов сборки и запуска кода — например, в Docker-контейнере, WSL или на удалённых компьютерах через SSH. Эта возможность пока доступна только на CLion, IntelliJ IDEA Ultimate и GoLand.
Ссылки на файлы в консоли. Во время отладки пользователи могут использовать dbg! и перейти к конкретным Rust-файлам.
Автодополнение для private-методов и переменных. Теперь дебагер будет давать подсказки при отладке.
Профилирование для WSL 2. В прошлом релизе разработчики включили поддержку WSL 2 по умолчанию, а в этом — добавили инструменты профилирования для него. Они доступны только для CLion.
Valgrind для WSL. Пользователи теперь могут использовать Valgrind-проверку памяти через WSL на Windows. Она тоже работает только на CLion.
Инструменты для интегрирования
Пользовательские параметры для rustfmt. В IntelliJ Rust теперь можно использовать rustfmt через недефолтные инструменты и настраивать дополнительные аргументы и переменные сред.
Виджет для внешних линтеров. Разработчики добавили возможность внедрять сторонние линтеры. Виджет будет информировать пользователей о том, включён ли линтер или нет, а также выдавать предупреждения, если линтер нагружает IDE.
Подробнее прочитать о всех изменениях можно в блоге JetBrains.