В 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++ распознает много новых встроенных модулей компилятора, в том числе дополнительные свойства типов и сравнения чисел с плавающей точкой.
Функция автодополнения теперь предлагает доступные имена категорий и уровни детализации в аргументах макросов 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 переносить файлы 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 в комментариях /** ... */
и правильно отображает информацию в подсказках.
Еще одна новая настройка позволяет управлять генерацией кода: будут ли сохраняться аргументы функций по умолчанию при создании переопределяющих функций.
В ReSharper C++ 2024.3 включены исполняемые файлы clang-tidy и clang-format из версии Clang 19. В них появились новые проверки и улучшения из свежей версии LLVM.
Комментарии // NOLINT(...)
в вашем коде теперь отключают не только определенные проверки clang-tidy, но и соответствующие инспекции ReSharper.
В новой версии встроенный форматтер распознает комментарии // clang-format off
и // clang-format on
и отключает форматирование в обозначенных областях.
В свежей версии ReSharper тоже много нового.
Есть бесплатная пробная версия на 30 дней