В ReSharper C++ 2025.2 добавлена поддержка начального набора языковых возможностей из недавно утвержденного стандарта C++26. Благодаря полному набору функций помощи при написании кода стало удобно редактировать код в блоках, исключенных с помощью директивы #if: не приходится переключать активную конфигурацию сборки. Кроме того, в этой версии появился публичный ранний доступ к долгожданному режиму запуска вне процесса: Out-of-Process. Теперь основная часть действий ReSharper выполняется в отдельном процессе.
ReSharper C++ 2025.2 — первая версия, куда мы добавили поддержку некоторых возможностей из недавно утвержденного стандарта C++26. Она поддерживает следующие возможности:
_, то для нее неявно указан атрибут [[maybe_unused]];= delete("reason"): добавление необязательного сообщения к удаленным функциям для упрощения диагностики ошибок;
Для C-разработчиков в ReSharper C++ добавлена поддержка типов C11 _Atomic, а также _BitInt(N) и суффиксов типов десятичных чисел с плавающей запятой из стандарта C23.
Если вы занимаетесь мультиплатформенной разработкой или пишете сложные шейдеры, то хорошо знаете, как неудобно редактировать код, который неактивен в текущей конфигурации сборки. В ReSharper C++ 2025.2 эта проблема была решена.
Мы полностью переработали подход ReSharper к обработке блоков, исключенных с помощью директивы #if. Теперь в неактивных блоках препроцессора доступны все функции помощи при написании кода. Вам больше не нужно останавливаться и переключать настройки проекта, чтобы выполнить рефакторинг, воспользоваться навигацией или отредактировать код на разных платформах или в разных конфигурациях сборки.
Рады сообщить, что ReSharper 2025.2 — это первая стабильная версия с поддержкой запуска в режиме Out-of-Process, то есть не внутри Microsoft Visual Studio, а как отдельный процесс операционной системы. Это долгожданное изменение архитектуры создает основу для более стабильной и производительной работы в будущем, поскольку позволяет разделить процессы ReSharper и Visual Studio.
Чтобы переключиться в режим Out-of-Process, перейдите в меню ReSharper Options | Environment | Products & Features и выберите Run ReSharper in separate process. Нажмите на кнопку Save and restart, чтобы применить изменения и заново инициализировать ReSharper, не перезапуская IDE.
Появилась отдельная цветовая подсветка для глобальных констант, чтобы их было проще отличать от обычных переменных.
ReSharper C++ 2025.2 понимает ссылки на переменные в директивах OpenMP #pragma. Благодаря этому для таких ссылок работает навигация, они отображаются в Find Usages и обновляются при переименовании.
В информации о параметрах (Parameter info) теперь корректно отображаются вызванные сигнатуры функции, если вызов функции выполнен внутри аргумента макроса.
Инспекции, касающиеся использования ключевого слова typename, обновлены и теперь поддерживают изменения, появившиеся в стандарте C++20. Кроме того, действия генерации кода и документирования теперь корректно обрабатывают параметр this с выводом типа в C++23.
Теперь в исходном файле можно автоматически сортировать определения в соответствии с порядком объявления в заголовке. Чтобы отсортировать их один раз, можно использовать новое контекстное действие Sort definitions by the order of declaration для определенной функции, файла или всего проекта. Чтобы постоянно поддерживать сортировку, включите соответствующую настройку стиля синтаксиса. Тогда ReSharper C++ предупредит вас о любых расхождениях с помощью специальной инспекции и отсортирует определения во время Code Cleanup.
Мы улучшили инспекцию именования C++, внеся два изменения. Во-первых, теперь вы можете настроить собственные правила именования для переменных, содержащих лямбда-выражения. Во-вторых, правила вывода типов для аргументов шаблона класса теперь корректно проверяются на соответствие правилам именования, которые вы установили для классов и структур.
Новая настройка инструмента форматирования позволяет настроить пробелы перед двоеточием в инициализаторе конструктора.
Окно Find Usages в новой версии теперь классифицирует вызовы неконстантных функций-членов класса как использования для чтения и записи. Это помогает отделить операции только для чтения и модифицирующие операции.
Для улучшения читаемости кода в окне File Structure добавлена подсветка синтаксиса для ключевых слов и идентификаторов.
Теперь, нажав Ctrl+click на ключевом слове virtual, можно быстро перейти к функциям переопределения — точно так же, как при нажатии Ctrl+click на override мы переходим к базовой функции.
В новой версии для аргументов типа std::initializer_list, помимо подсказок массивов, доступны также подсказки с индексами элементов. Их можно задать на странице настроек ReSharper | Options | Environment | Inlay Hints | C/C++ | Aggregate Initialization.
Теперь при рефакторинге нужные действия появляются в виде небольших подсказок прямо в коде. Так их проще заметить, и они работают так же, как в других JetBrains IDE. Их внешний вид можно настроить в меню ReSharper | Options | Environment | Editor | Appearance.
В ReSharper C++ уже была доступна поддержка показа использований вашего кода в файлах Blueprint. Теперь она работает даже в тех файлах Blueprint, где реализован макрос UINTERFACE.
Мы добавили автодополнение кода для имен методов в метаданных BlueprintGetter и BlueprintSetter.
Если вы хотите разрабатывать на Unreal Engine в отдельной кросс-платформенной IDE, обратите внимание на Rider. Поддержка Unreal Engine в Rider соответствует возможностям ReSharper C++, поэтому в Rider 2025.2 вас ждут такие же улучшения.
Новая версия ReSharper C++ интегрируется с фильтрами Visual Studio для пошаговой отладки. В результате отладчик C++ теперь будет учитывать правила, установленные вами для пошаговой отладки в файлах конфигурации *.natstepfilter.
Теперь ReSharper C++ по умолчанию использует в Visual Studio 2022 64-битную версию MSBuild для чтения модели проекта. Это повысило стабильность при загрузке крупных проектов, особенно в решениях с Unreal Engine 5.6.
Функции новой версии ReSharper C++ можно использовать в исходных файлах, которые не включены в какие бы то ни было Build Target в проектах CMake и Open Folder. Однако такие файлы по-прежнему не индексируются для ускорения работы.
В свежей версии ReSharper тоже много нового.