Что нового в ReSharper 2023.3

ReSharper 2023.3 обеспечивает поддержку новых возможностей C# 12, а также предлагает совершенно новые диаграммы связей сущностей и инспекции для проблем, вызванных такими взаимосвязями. В новой версии значительно улучшена производительность, в том числе оптимизирован анализ кода в фоновом режиме и добавлена возможность контролировать объем ресурсов, которые выделяются для анализа кода. Наконец, в ReSharper 2023.3 был значительно обновлен AI Assistant.

Скачать

Доступна бесплатная пробная версия на 30 дней

Официальная версия AI Assistant Публичный доступ

Мы официально выпустили своего ИИ-помощника AI Assistant, добавив ряд новых возможностей и улучшив уже известные функции, чтобы сделать вашу работу еще эффективнее. Свежие обновления для ReSharper:

  • контекстный чат-бот;
  • улучшенный учет контекста проекта для действий на основе ИИ;
  • автодополнение многострочного кода на основе ИИ;
  • генерация юнит-тестов;
  • создание XML-документации;
  • возможность создания библиотеки настраиваемых подсказок.

Чтобы использовать AI Assistant как дополнительную функцию ReSharper, вам потребуется подписка JetBrains AI Service.

Посмотреть демо

Поддержка C#

В новой версии ReSharper расширен перечень поддерживаемых возможностей C# 12. Теперь в него также входят первичные конструкторы, директивы создания псевдонимов для ссылок на любые типы, выражения коллекций, перехватчики и многое другое.

Подробнее об обновлениях поддержки C# в Rider и ReSharper 2023.3 читайте в этой статье.

Посмотреть демо

Производительность

Теперь ReSharper 2023.3 распознает больше сценариев, когда службы анализа кода действуют пошагово, прерываясь при вводе новых символов, и упрощает работу таких сценариев. Это будет особенно полезно при обработке больших файлов.

Переработанная интеграция быстрых действий в ReSharper и Visual Studio

Кроме того, в новой версии разработчик может управлять ресурсами, которые выделяются для анализа кода по всему решению. Вы можете выбрать один из трех режимов использования ресурсов: Low, Moderate и High.

Несмотря на название, режим High не мешает вводу кода в редакторе и не снижает отзывчивость IDE. Он постепенно увеличивает использование ЦП, только когда анализ прерывается вводом кода. В результате разработчик продолжает без помех писать код, а анализ по всему решению обрабатывает исходный код в фоновом режиме.

Другие улучшения производительности

Поиск использований типов и конструкторов в решениях с созданием большого числа объектов с целевой типизацией, например SomeType _field = new(), теперь работает быстрее. Кроме того, это улучшение увеличивает скорость рефакторинга.

Мы также исправили ряд ошибок, связанных с обработкой языковых вставок, из-за которых заметно увеличивалась нагрузка на ЦП.

Изменения в интерфейсе

Переработанный интерфейс рефакторинга Extract local function

Переработанный интерфейс рефакторинга Extract local function

Мы переработали интерфейс рефакторинга Extract local function. Раньше пользователи сталкивались с трудностями, выбирая из предлагаемого списка местоположение для новой функции. Кроме того, было непонятно, на что повлияет этот выбор.

Обновленный интерфейс показывает предпросмотр сигнатуры новой функции прямо в редакторе кода. В результате легко понять, куда именно она будет вставлена и как этот выбор повлияет на вводимую функцию. Кроме того, пользователь видит, какие переменные будут преобразованы в параметры, а не в замыкания, и какие еще функции будут перемещены для обеспечения вызовов в новом местоположении.

Переработанная интеграция быстрых действий в ReSharper и Visual Studio

Переработанная интеграция быстрых действий в ReSharper и Visual Studio

При аккуратном использовании быстрые действия в Visual Studio и ReSharper отлично дополняют друг друга. В ReSharper 2023.3 можно пользоваться преимуществами обеих систем. В настройках можно выбрать один из вариантов: использовать только быстрые действия ReSharper, отображать иконки и тех, и других предлагаемых действий, либо вызывать все быстрые действия из меню-лампочки ReSharper.

Назначенные символы для Copy Code Reference

Назначенные символы для Copy Code Reference

В ReSharper 2023.3 появилась возможность вызова действий Copy Code Reference нажатием клавиш. Каждому ссылочному типу кода в контекстном меню теперь соответствует отдельная клавиша.

Поддержка C++

В ReSharper C++ 2023.3 стало гораздо удобнее работать с неактивным кодом. Автодополнение кода в ветках условных блоков препроцессинга, которые в данный момент неактивны, теперь предлагает символы из общей области доступа. Кроме того, обновлено действие Find Usages: теперь оно показывает возможные использования в неактивном коде и тела макросов в определенных разделах результатов.

Подробнее об обновлениях для C++: Что нового в ReSharper C++ 2023.3

Форматирование кода

Новый движок форматирования кода для Razor

Новый движок форматирования кода для Razor

В ReSharper 2023.3 появился новый движок форматирования кода для Razor. Он совместим с форматтером ReSharper для C#, который используется в настоящий момент, то есть поддерживает конструкции языка C#, появившиеся в последние годы, и большинство новых параметров форматирования ReSharper для C#. Новый форматтер работает быстрее и, как ожидается, стабильнее. Однако он меняет форматирование по умолчанию для части кода. Поэтому мы добавили возможность переключения на старый движок форматирования для Razor. Это можно сделать в меню ReSharper Options в разделе Code Editing | Razor | Code Style.

Entity Framework

Инспекции для ошибок, связанных с Entity Framework

В ReSharper 2023.3 появились новые инспекции для использований методов в коде Entity Framework, которые могут стать причиной исключений при выполнении кода.

Посмотреть демо

Две ситуации, для которых предназначены новые инспекции:

  1. Методы, которые приводят к возникновению исключений при вызове в контексте базы данных, если они не могут быть преобразованы в SQL в рамках Entity Framework или Entity Framework Core.
  2. Методы, которые приводят к возникновению исключений при вызове вне контекста базы данных, если они реализованы только как функции базы данных.
Переработанный интерфейс рефакторинга Extract local function

Диаграммы связей сущностей

В новой версии добавлены диаграммы связей сущностей (ERD). ERD в ReSharper обеспечивают графическое представление модели БД и связей между сущностями, а также результаты анализа модели БД.

ReSharper 2023.3 предлагает специальные возможности анализа для Entity Framework: они проверяют, не вызовет ли код проблемы с моделью EF — например, если там отсутствуют ограничения длины свойств строки или есть циклические зависимости. Если после этого вызвать контекстное меню для такой инспекции и выбрать Show Entity Relationship Diagram, вы получите визуальное представление результатов.

Подробнее о визуализации связей в Entity Framework и о новых инспекциях — в нашем блоге.

Юнит-тестирование

Генерация тестов с помощью ИИ
Бета

В предыдущей версии появилась возможность быстро создавать юнит-тесты. Последнее обновление AI Assistant в ReSharper 2023.3 позволяет использовать возможности больших языковых моделей для генерации кода внутри юнит-тестов.

Проверка правописания и грамматики

Новый движок форматирования кода для Razor

Новый инструмент проверки правописания и грамматики в ReSharper — JetBrains Grazie. Grazie поддерживает более 20 языков и находит как ошибки в естественных языках, так и в языках программирования, поддерживаемых ReSharper (C#, C++, VB.NET), языках разметки текста (HTML, XML, XAML) и комментариях. Добавить в Grazie другие естественные языки можно в меню ReSharper Options | Grammar and Spelling | General.

Линтер Qodana Community для .NET

Уже давно запустить анализ кода вне IDE на CI/CD-сервере можно было только одним способом: с помощью инструмента командной строки ReSharper InspectCode. Недавно в нашу линейку инструментов для .NET была включена Qodana, и мы запустили программу раннего доступа для линтера Qodana Community для .NET.

В основе Qodana — тот же самый движок статического анализа кода, что и у ReSharper, но это решение предлагает ряд дополнительных преимуществ:

  • пользователи могут изучить результаты анализа, используя специальную диаграмму «Солнечные лучи» и быстро оценить общее состояние проекта;
  • основные данные можно использовать для устранения технических недоработок.

Кроме того, платные линтеры Qodana для .NET позволят запускать проверки лицензий сторонних производителей, анализировать покрытие кода и выявлять уязвимые зависимости.

Мы по-прежнему поддерживаем инструменты командной строки ReSharper, но с этого момента рекомендуемым способом анализа ReSharper вне IDE становится линтер Qodana Community для .NET.

dotMemory

dotMemory Standalone для macOS и Linux  dotUltimate Бета-версия

Теперь в операционных системах Linux и macOS можно использовать автономную версию.

Декомпиляция

Сравнение сборок

Функция Assembly diff, появившаяся в предыдущей версии, теперь позволяет сравнивать пакеты NuGet, папки и файлы .zip.

Сравнение сборок

У функции сравнения сборок теперь больше вариантов настройки. Вы можете выбрать один из предлагаемых режимов сравнения (Show all, Show only differences, Show only signature differences, Show only public API differences). Можно также указать, следует ли при сравнении учитывать разницу в порядке членов и атрибутов, а также различия в аннотациях ссылочных типов, допускающих значение null.

Менеджер сборок (Assembly explorer)

Изменения в Assembly Explorer

  • Теперь при просмотре пакетов NuGet в Assembly Explorer вы сможете увидеть все файлы и папки внутри пакетов.
  • Узлы ресурсов Win32, включая размер и тип (если последние определяются), теперь можно посмотреть в дереве представления узлов и на панели Properties.

Другие обновления:

  • Добавлена возможность декодирования ресурсов Win32 типа «таблица строк».
  • Новая версия ReSharper отображает размер открытых файлов в панели Properties для сборок/не сборок, файлов внутри пакетов, архивов, пакетов NuGet, сравниваемых сборок и ресурсов Win32.
  • Доступна проверка сигнатуры сборки Authenticode.
  • Явные директивы #nullable disable отображаются в декомпилированных источниках.

Разное

Новые инспекции для приложений, предназначенных для фреймворка ASP.NET Core

Новые инспекции для приложений, предназначенных для фреймворка ASP.NET Core

В динамический анализ программы добавлены три новых инспекции для приложений, предназначенных для фреймворка ASP.NET Core. Эти инспекции предупреждают о возможных проблемах с производительностью бэкенда, из-за чего время отклика приложения может увеличиться.

Подробнее

Новые инспекции для выявления уязвимых использований API

Новые инспекции для выявления уязвимых использований API Безопасность

В Rider 2023.3 добавлены новые инспекции безопасности, чтобы разработчику было проще найти уязвимости в коде и понять их суть.

Эти инспекции выявляют уязвимые пакеты NuGet в проекте и подсвечивают случаи использования уязвимых методов из этих библиотек в вашем коде. При обнаружении уязвимости система подсвечивает соответствующий код и предлагает варианты быстрого устранения проблемы. Это может быть рекомендация перейти на более новую версию пакета, а также подробная информация о найденных уязвимостях.

Скачать

Доступна бесплатная пробная версия на 30 дней