Новое в ReSharper 2024.2

В ReSharper 2024.2 появилась поддержка .NET 9 Preview SDK, в том числе начальная поддержка таких возможностей C# 13, как реализация интерфейса ref struct, новая экранирующая последовательность \e и рефакторинг модификатора params. Новая версия поддерживает также возможности C++23, отображает в подсказках информацию об организации типов, а также предлагает улучшенную поддержку проектов Unreal Engine. В этот релиз включен также первый этап локализации на китайский, корейский и японский языки, поддержка асинхронного ввода для повышения производительности, а также улучшения AI Assistant: улучшенные языковые модели, предложения автодополнения кода в редакторе и новые функции Explain with AI.

Скачать

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

Поддержка .NET 9 Preview SDK

В ReSharper 2024.2 появилась поддержка .NET 9 Preview SDK, в том числе начальная поддержка таких возможностей C# 13, как экранирующие символы, рефакторинги модификатора param и интерфейсы ref struct.

Поддержка C#

В новой версии ReSharper расширена поддержка возможностей C# 12, в том числе primary-конструкторов, добавлены контекстные действия и анализы для выражений-коллекций из C# 12. Кроме того, в ReSharper 2024.2 появилась поддержка первых изменений в языке C# 13. Она включает в себя реализацию поддержки ref struct типов в generic-коде, новую экранирующую последовательность \e и рефакторинг модификатора params.

Мы также добавили следующие возможности:

  • Анализ struct-типов в сценариях проверки эквивалентности.
  • Инспекция Extract common code для уменьшения количества дубликатов кода в конструкциях с ветвлением.
  • Предпросмотр форматирования в разных культурах в автодополнении вызовов ToString().
  • Анализ для замены оператора приведения типов на явные аннотации типов.

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

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

Важные улучшения поддержки C++:

  • Поддержка дополнительных возможностей C++23, включая оператор обращения по индексу, директивы препроцессора #elifdef и #elifndef, а также атрибут [[assume]].
  • Во всплывающем окне подсказок и быстрой документации теперь отображается подробная информация об организации типов для классов и полей классов, в том числе размер, выравнивание, отступы и интервалы.
  • В проектах Unreal Engine новая версия ReSharper распознает свойства типов struct и гарантирует, что у них есть нужные методы, а при их отсутствии быстро генерирует их. Новая инспекция находит отсутствующие вызовы методов базового класса.
  • Рефакторинг Rename предлагает новые параметры для переименования связанных файлов и типов при переименовании файла.
  • Улучшения анализа кода включают в себя обновление Clang-Tidy 18 и поддержку прагм IWYU.

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

Локализация

В версии 2024.2 мы представляем результаты первого этапа перевода ReSharper на китайский (упрощенный), корейский и японский языки. Локализация затронула интерфейс, инспекции кода, окна и уведомления. Чтобы включить локализованную версию ReSharper, перейдите в меню Options | Environment | General | Localization | Interface language и выберите нужный вариант в раскрывающемся списке.

Можно также установить плагин для локализации через Extension Manager. Подробные инструкции приведены здесь.

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

Включен асинхронный ввод

Асинхронная обработка ввода текста — это часть текущих усилий по улучшению производительности ReSharper за счет работы вне процесса с Visual Studio. ReSharper 2024.2 — первая версия нашего продукта, где сделано это важное изменение. Наше внутреннее тестирование показало, что асинхронный ввод существенно сокращает количество задержек при тайпинге. Мы будем рады, если вы поделитесь своими впечатлениями от этого изменения в нашем баг-трекере.

AI Assistant

Обновленные модели и улучшенный анализ контекста

Мы перешли с более старых моделей GPT 3.5 и GPT 4 на GPT-4o и Google Bison. Выбор конкретной модели зависит от задачи. Кроме того, функции анализа контекста для автодополнения на основе ИИ и чат-бота были обновлены и обеспечивают более точные результаты благодаря новой модели.

Ask AI

Если вы хотите задать вопрос ИИ, открывать чат-бот больше не обязательно. Просто вызовите Ask AI и спрашивайте!

Улучшены подсказки и генерация кода в редакторе

Теперь одним кликом (или нажав клавиши Alt+Enter) можно получить у JetBrains AI подсказку: где можно сгенерировать XML-документацию или реализовать пустые методы. Искать эти функции вручную в списке действий больше не нужно.

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

Улучшен интерфейс автодополнения кода на основе ИИ

Мы улучшили представление предложений ИИ, чтобы пользователям было легче отличить варианты автодополнения для нескольких строк, предложенные ReSharper на основе ИИ, от других элементов. Чтобы сгенерировать новые результаты, достаточно нажать Shift+Tab.

Варианты именования на основе ИИ для рефакторингов Rename и Extract Method

Придумывать имена для переменных и методов бывает сложно, особенно в больших проектах, где много символов с похожими именами. Теперь в этом может помочь ИИ — он предложит самые подходящие варианты для переименования метода.

Функция Explain with AI для отладки и динамического анализа программы

В новой версии можно, не переключая контекст, попросить ИИ объяснить любые исключения, которые возникли во время сеанса отладки. Просто нажмите кнопку рядом с исключением и посмотрите объяснение в чате.

Кроме того, AI Assistant сможет объяснить проблемы с распределением памяти или ошибки, возникшие при работе с базами данных, которые были выявлены динамическим анализом программы (DPA). Если DPA нашел проблему, нажмите на кнопку Explain with AI: ИИ проанализирует контекст, даст свое объяснение и предложит варианты исправления. Сейчас эта функция доступна только для проблем с памятью и базами данных.

dotMemory

dotUltimate

Улучшенный поиск экземпляров

Мы добавили новые возможности фильтрации в представлении Instances:

  • Поиск по строковому значению: введите любое строковое значение в поле фильтра, и dotMemory подсветит соответствующие строки. Благодаря этому проще найти экземпляры конкретных строк по их содержимому.
  • Поддержка регулярных выражений в строковых значениях: регулярные выражения позволяют сделать поиск более точным. Например, ^nAsso.{5,}ID$ соответствует nAssociatedObjectID.nAssociatedObjectID.
  • Поиск по адресу объекта: экземпляры объектов можно найти также по их адресам в памяти. Это удобно для прямого отслеживания объектов.

Подробнее об улучшениях в профилировщике dotMemory читайте здесь.

dotTrace

dotUltimate

Новые возможности профилирофщика производительности после свежего обновления:

  • Повышенная производительность и ускоренная обработка снэпшотов Timeline.
  • Новый процессор рендеринга в dotTrace Viewer на всех платформах.
  • В автономную версию для macOS и Linux добавлено окно Options.
  • Исправлена ошибка с отсутствующими событиями ядра в снэпшотах Timeline на Windows.
  • Многочисленные мелкие улучшения и исправления.

Подробнее об улучшениях в профилировщике dotTrace читайте здесь.

Декомпилятор

Общие улучшения

  • Параметры лямбда-выражений: мы добавили поддержку декомпиляции лямбда-выражений с опциональными параметрами и массивами параметров, улучшив читаемость и точность декомпилированного кода.
  • Атрибуты лямбда-выражений: новая версия инструмента лучше обрабатывает атрибуты лямбда-выражений, так что все нужные метаданные будут точно переданы в результате декомпиляции.
  • Защищенные сборки: мы добавили функцию, которая позволяет указать, нужно ли декомпилировать защищенные сборки. В результате исследование кода становится более полным.

Обнаружение конфигураций сборки

Окно Assembly Explorer теперь распознает и представляет конфигурацию сборки для скомпилированных сборок, позволяя точнее проанализировать контекст компиляции.

Обработка внешних источников

  • PDB с SrcSrv и SourceLink: теперь декомпилятор поддерживает переход к источникам из файлов PDB, содержащих как SrcSrv, так и SourceLink.
  • Директивы препроцессора: в этой версии декомпилятор правильно распознает директивы препроцессора (например NET6_0_OR_GREATER) из целевого фреймворка или файлов Portable PDB связанной сборки, что обеспечивает точное представление кода.
  • Действие Open in Browser: теперь вы можете перейти к исходному коду в репозитории (для типов) или к репозиторию (для пакетов NuGet и скомпилированных сборок).