Что нового в ReSharper C++ 2024.3

В ReSharper C++ 2024.3 улучшена производительность при работе с крупными решениями, реализованы новые возможности языка из стандартов C++23 и C23 и добавлен рефакторинг Move to Folder. На проектах Unreal Engine новая версия ReSharper C++ предлагает варианты автодополнения для тегов геймплея и аргументов макросов журнала, а также расширенную поддержку делегатов.

Скачать

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

Оптимизация производительности

При разработке ReSharper C++ 2024.3 мы постарались оптимизировать использование памяти при работе с крупными решениями. В результате теперь IDE потребляет гораздо меньше памяти. Проведенные нами тесты показывают, что после первоначальной индексации использование памяти снизилось примерно на 20 % для Unreal Engine и на 30 % — для Chromium.

Такая экономия в сочетании с оптимизацией, нацеленной на снижение трафика памяти, позволила также заметно ускорить индексацию. Например, первоначальная индексация решения LLVM теперь проходит на 10 % быстрее.

Возможности языка

В ReSharper C++ 2024.3 обеспечена полная поддержка основных возможностей C++23 благодаря внедрению суффиксов литералов для size_t и атрибутов в лямбда-выражениях. Кроме того, теперь выполняется вычисление свойства типа C++17 std::has_unique_object_representations.

Пользователям C ReSharper C++ предлагает поддержку ключевых слов typeof и typeof_unqual, а также макроса __has_c_attribute из C23.

Для улучшения совместимости с другими компиляторами помимо MSVC в ReSharper C++ реализованы несколько расширений GNU для языка, в том числе диапазоны операторов switch case, именованные параметры вариативных макросов, атрибут типа transparent_union и __attribute((aligned(...))). Кроме того, ReSharper C++ распознает много новых встроенных модулей компилятора, в том числе дополнительные свойства типов и сравнения чисел с плавающей точкой.

Unreal Engine

Функция автодополнения теперь предлагает доступные имена категорий и уровни детализации в аргументах макросов UE_LOG и UE_LOGFMT. Встроенные шаблоны Live Template с такими же именами помогут быстро добавить новые выражения логирования.

Теперь ReSharper C++ находит теги геймплея, определенные в проекте, и предлагает их в качестве вариантов автодополнения аргумента для функции FGameplayTag::RequestGameplayTag.

Улучшенная поддержка макроса UDELEGATE включает в себя автодополнение спецификаторов рефлексии в атрибутах макроса и отслеживание числа использований файлов Blueprints для членов класса в типах делегатов.

Если вы хотите разрабатывать на Unreal Engine в отдельной кросс-платформенной IDE, обратите внимание на Rider. Поддержка Unreal Engine в Rider соответствует возможностям ReSharper C++, поэтому в Rider 2024.3 вас ждут такие же улучшения.

Рефакторинг Move to Folder

Благодаря рефакторингу Move to Folder переносить файлы C++ стало гораздо проще. Когда вы перемещаете файлы в новое место, рефакторинг обновляет директивы #include в соответствии с изменениями в структуре проекта.

Помощь в написании кода

Для пользователей, которые работают с библиотекой диапазонов C++20, мы добавили новые контекстные действия, позволяющие преобразовать форму использования адаптера диапазонов (трубка и вызов). Мы также улучшили диагностические сообщения для ошибок перегрузки, когда адаптеры диапазонов используются в форме трубки.

Версия ReSharper C++ 2024.3 поддерживает многострочные комментарии To-do, позволяя обрабатывать текст с отступом, расположенный на идущих подряд строках, как единый объект To-do. Кроме того, если вам встретился объект To-do со ссылкой на внешнюю проблему, с помощью действия Peek To-do link (Ctrl+Shift+Click) ее можно посмотреть прямо в коде.

Функция помощи при вводе теперь автоматически вставляет пробел перед открывающей скобкой, если включен параметр форматтера Space before parentheses in control statements.

Новые настройки форматтера позволяют выбрать стиль скобок для свойств C++/CLI и настроить перевод строки перед try-блоком функции.

Генерация кода

Если в вашем проекте для документирующих комментариев используется синтаксис XML, а не Doxygen, теперь стиль шаблона документации по умолчанию легко изменить в настройках Code Generation. Кроме того, эта версия ReSharper C++ распознает документацию XML в комментариях /** ... */ и правильно отображает информацию в подсказках.

Еще одна новая настройка позволяет управлять генерацией кода: будут ли сохраняться аргументы функций по умолчанию при создании переопределяющих функций.

Интеграция с инструментами Сlang

В ReSharper C++ 2024.3 включены исполняемые файлы clang-tidy и clang-format из версии Clang 19. В них появились новые проверки и улучшения из свежей версии LLVM.

Комментарии // NOLINT(...) в вашем коде теперь отключают не только определенные проверки clang-tidy, но и соответствующие инспекции ReSharper.

В новой версии встроенный форматтер распознает комментарии // clang-format off и // clang-format on и отключает форматирование в обозначенных областях.

В свежей версии ReSharper тоже много нового.

Скачать

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