ReSharper 2023.3 обеспечивает поддержку новых возможностей C# 12, а также предлагает совершенно новые диаграммы связей сущностей и инспекции для проблем, вызванных такими взаимосвязями. В новой версии значительно улучшена производительность, в том числе оптимизирован анализ кода в фоновом режиме и добавлена возможность контролировать объем ресурсов, которые выделяются для анализа кода. Наконец, в ReSharper 2023.3 был значительно обновлен AI Assistant.
Доступна бесплатная пробная версия на 30 дней
Мы официально выпустили своего ИИ-помощника AI Assistant, добавив ряд новых возможностей и улучшив уже известные функции, чтобы сделать вашу работу еще эффективнее. Свежие обновления для ReSharper:
Чтобы использовать AI Assistant как дополнительную функцию ReSharper, вам потребуется подписка JetBrains AI Service.
В новой версии ReSharper расширен перечень поддерживаемых возможностей C# 12. Теперь в него также входят первичные конструкторы, директивы создания псевдонимов для ссылок на любые типы, выражения коллекций, перехватчики и многое другое.
Подробнее об обновлениях поддержки C# в Rider и ReSharper 2023.3 читайте в этой статье.
Теперь ReSharper 2023.3 распознает больше сценариев, когда службы анализа кода действуют пошагово, прерываясь при вводе новых символов, и упрощает работу таких сценариев. Это будет особенно полезно при обработке больших файлов.
Кроме того, в новой версии разработчик может управлять ресурсами, которые выделяются для анализа кода по всему решению. Вы можете выбрать один из трех режимов использования ресурсов: Low, Moderate и High.
Несмотря на название, режим High не мешает вводу кода в редакторе и не снижает отзывчивость IDE. Он постепенно увеличивает использование ЦП, только когда анализ прерывается вводом кода. В результате разработчик продолжает без помех писать код, а анализ по всему решению обрабатывает исходный код в фоновом режиме.
Поиск использований типов и конструкторов в решениях с созданием большого числа объектов с целевой типизацией, например SomeType _field = new()
, теперь работает быстрее. Кроме того, это улучшение увеличивает скорость рефакторинга.
Мы также исправили ряд ошибок, связанных с обработкой языковых вставок, из-за которых заметно увеличивалась нагрузка на ЦП.
Мы переработали интерфейс рефакторинга Extract local function. Раньше пользователи сталкивались с трудностями, выбирая из предлагаемого списка местоположение для новой функции. Кроме того, было непонятно, на что повлияет этот выбор.
Обновленный интерфейс показывает предпросмотр сигнатуры новой функции прямо в редакторе кода. В результате легко понять, куда именно она будет вставлена и как этот выбор повлияет на вводимую функцию. Кроме того, пользователь видит, какие переменные будут преобразованы в параметры, а не в замыкания, и какие еще функции будут перемещены для обеспечения вызовов в новом местоположении.
При аккуратном использовании быстрые действия в Visual Studio и ReSharper отлично дополняют друг друга. В ReSharper 2023.3 можно пользоваться преимуществами обеих систем. В настройках можно выбрать один из вариантов: использовать только быстрые действия ReSharper, отображать иконки и тех, и других предлагаемых действий, либо вызывать все быстрые действия из меню-лампочки ReSharper.
В ReSharper 2023.3 появилась возможность вызова действий Copy Code Reference нажатием клавиш. Каждому ссылочному типу кода в контекстном меню теперь соответствует отдельная клавиша.
В ReSharper C++ 2023.3 стало гораздо удобнее работать с неактивным кодом. Автодополнение кода в ветках условных блоков препроцессинга, которые в данный момент неактивны, теперь предлагает символы из общей области доступа. Кроме того, обновлено действие Find Usages: теперь оно показывает возможные использования в неактивном коде и тела макросов в определенных разделах результатов.
Подробнее об обновлениях для C++: Что нового в ReSharper C++ 2023.3
В ReSharper 2023.3 появился новый движок форматирования кода для Razor. Он совместим с форматтером ReSharper для C#, который используется в настоящий момент, то есть поддерживает конструкции языка C#, появившиеся в последние годы, и большинство новых параметров форматирования ReSharper для C#. Новый форматтер работает быстрее и, как ожидается, стабильнее. Однако он меняет форматирование по умолчанию для части кода. Поэтому мы добавили возможность переключения на старый движок форматирования для Razor. Это можно сделать в меню ReSharper Options в разделе Code Editing | Razor | Code Style.
В ReSharper 2023.3 появились новые инспекции для использований методов в коде Entity Framework, которые могут стать причиной исключений при выполнении кода.
Две ситуации, для которых предназначены новые инспекции:
В новой версии добавлены диаграммы связей сущностей (ERD). ERD в ReSharper обеспечивают графическое представление модели БД и связей между сущностями, а также результаты анализа модели БД.
ReSharper 2023.3 предлагает специальные возможности анализа для Entity Framework: они проверяют, не вызовет ли код проблемы с моделью EF — например, если там отсутствуют ограничения длины свойств строки или есть циклические зависимости. Если после этого вызвать контекстное меню для такой инспекции и выбрать Show Entity Relationship Diagram, вы получите визуальное представление результатов.
Подробнее о визуализации связей в Entity Framework и о новых инспекциях — в нашем блоге.
В предыдущей версии появилась возможность быстро создавать юнит-тесты. Последнее обновление AI Assistant в ReSharper 2023.3 позволяет использовать возможности больших языковых моделей для генерации кода внутри юнит-тестов.
Новый инструмент проверки правописания и грамматики в ReSharper — JetBrains Grazie. Grazie поддерживает более 20 языков и находит как ошибки в естественных языках, так и в языках программирования, поддерживаемых ReSharper (C#, C++, VB.NET), языках разметки текста (HTML, XML, XAML) и комментариях. Добавить в Grazie другие естественные языки можно в меню ReSharper Options | Grammar and Spelling | General.
Уже давно запустить анализ кода вне IDE на CI/CD-сервере можно было только одним способом: с помощью инструмента командной строки ReSharper InspectCode. Недавно в нашу линейку инструментов для .NET была включена Qodana, и мы запустили программу раннего доступа для линтера Qodana Community для .NET.
В основе Qodana — тот же самый движок статического анализа кода, что и у ReSharper, но это решение предлагает ряд дополнительных преимуществ:
Кроме того, платные линтеры Qodana для .NET позволят запускать проверки лицензий сторонних производителей, анализировать покрытие кода и выявлять уязвимые зависимости.
Мы по-прежнему поддерживаем инструменты командной строки ReSharper, но с этого момента рекомендуемым способом анализа ReSharper вне IDE становится линтер Qodana Community для .NET.
Функция Assembly diff, появившаяся в предыдущей версии, теперь позволяет сравнивать пакеты NuGet, папки и файлы .zip
.
У функции сравнения сборок теперь больше вариантов настройки. Вы можете выбрать один из предлагаемых режимов сравнения (Show all, Show only differences, Show only signature differences, Show only public API differences). Можно также указать, следует ли при сравнении учитывать разницу в порядке членов и атрибутов, а также различия в аннотациях ссылочных типов, допускающих значение null.
#nullable disable
отображаются в декомпилированных источниках. В динамический анализ программы добавлены три новых инспекции для приложений, предназначенных для фреймворка ASP.NET Core. Эти инспекции предупреждают о возможных проблемах с производительностью бэкенда, из-за чего время отклика приложения может увеличиться.
В Rider 2023.3 добавлены новые инспекции безопасности, чтобы разработчику было проще найти уязвимости в коде и понять их суть.
Эти инспекции выявляют уязвимые пакеты NuGet в проекте и подсвечивают случаи использования уязвимых методов из этих библиотек в вашем коде. При обнаружении уязвимости система подсвечивает соответствующий код и предлагает варианты быстрого устранения проблемы. Это может быть рекомендация перейти на более новую версию пакета, а также подробная информация о найденных уязвимостях.
Доступна бесплатная пробная версия на 30 дней