В ReSharper C++ 2024.1 улучшена поддержка модулей C++20 и появилась навигация по исходящим вызовам с помощью функции Call Tracking. Расширенная помощь при написании кода включает в себя улучшенный рефакторинг Change Signature, обновленную поддержку документирующих комментариев и многое другое. Для разработчиков Unreal Engine в ReSharper C++ 2024.1 теперь доступны поддержка фреймворка Slate UI, а также автодополнение путей ассетов в коде C++.
Есть бесплатная пробная версия на 30 дней
Мы обновили процесс поиска модулей, и теперь ReSharper C++ внутренние разделы, не влияющие на внешний интерфейс модуля. Иначе говоря, это разделы модулей без самостоятельных объявлений export module
.
Мы переработали внутреннее представление экспортированных модулей C++20, упростив импорт транзитивных ссылок на объекты из других модулей. Раньше такие объекты приходилось заново экспортировать из модуля, куда они были импортированы. Мы надеемся, что эти изменения заметно упростят работу с экспортированными модулями и повысят производительность на проектах, где используются модули C++20.
В ReSharper C++ 2024.1 добавлена поддержка фреймворка Slate UI для Unreal Engine. Встроенный инструмент форматирования и функции помощи при редактировании кода помогут отформатировать код Slate в соответствии с требованиями Unreal Engine. Такие функции, как Go to declaration, Find Usages и Rename, также были обновлены и теперь понимают синтаксис объявлений Slate.
Благодаря интеграции с возможностями Blueprints новая версия ReSharper C++ поддерживает добавление Core Redirects при переименовании экземпляра UENUM, а также автодополнение путей ассетов для имен ресурсов в коде C++.
В коде шейдеров теперь поддерживаются интерфейсы HLSL, используемые для динамического связывания шейдеров.
Если вы хотите разрабатывать на Unreal Engine в отдельной кросс-платформенной IDE, обратите внимание на Rider. Поддержка Unreal Engine в Rider соответствует возможностям ReSharper C++, поэтому в Rider 2024.1 вас ждут такие же улучшения.
В новой версии ReSharper функция Call Tracking поддерживает не только отслеживание входящих вызовов, как раньше, но и навигацию по всем цепочкам исходящих вызовов. Чтобы посмотреть исходящие вызовы, поместите курсор в любую функцию и выберите в контекстном меню пункт Inspect | Outgoing calls. Можно также нажать Ctrl+Shift+Alt+A, чтобы вызвать нужное действие из меню Inspect This.
Теперь с помощью рефакторинга Change Signature удобно менять тип параметра функции: указатель, ссылка или значение. ReSharper автоматически обновит все использования параметра в теле функции и исправит ее аргументы в местах вызова, добавив при необходимости операторы разыменования и взятия адреса.
При вызове Change Signature для функции, у которой могут быть использования в зависимом коде, обновленный рефакторинг позволяет проверить изменения и указать, какие именно использования нужно обновить.
Можно также указать аргументы по умолчанию для новых параметров функции, добавленных с помощью Change Signature.
Другие важные изменения Change Signature:
int
в типах unsigned int
. В новой версии можно настроить стиль генерируемых документирующих комментариев, при этом не придется редактировать шаблон Live Template. Это можно сделать в меню ReSharper Settings | Code editing | C++ | Code generation.
Начиная с версии 2023.3, в ReSharper используется новый инструмент проверки правописания и грамматики — JetBrains Grazie. В версии 2024.1 инспекции для проверки грамматики на основе Grazie стали доступны и в документирующих комментариях C++.
В новой версии рефакторинг Change Signature сохраняет синхронизацию команд @param
со списком параметров функций. Он удаляет @param
для удаленных параметров, добавляет команды для новых параметров, а также меняет порядок существующих команд в соответствии с обновленным порядком включенных параметров.
По свежим данным, полученным в ходе широкого тестирования инструментов рефакторинга C++, которое проводил Ричард Томсон, ReSharper C++ по-прежнему опережает конкурентов, успешно проходя большинство тестов. Мы постоянно стремимся улучшить качество вариантов, предлагаемых нашим инструментом, и в ReSharper C++ 2024.1 мы устранили несколько проблем, которые Ричард нашел в ходе этого тестирования. Например, быстрое исправление Create constructor from usage теперь при необходимости добавляет конструктор по умолчанию.
Версия ReSharper C++ 2024.1 предлагает удалить избыточные идиоматические инциализаторы нуля при агрегированной инициализации. Несколько новых инспекций помогают найти разные проблемы с членами статических данных, например, избыточные спецификаторы inline
в членах данных static constexpr
.
Инструмент очистки кода Code cleanup добавляет новые элементы, чтобы удалить избыточные спецификаторы доступности и создать классы без наследников final
. Функция Apply ‘auto’ style в новой версии обрабатывает не только локальные, но и глобальные переменные, а также члены классов.
Раньше, чтобы отключить выбранную инспекцию для определенной области доступа, можно было использовать специальные комментарии // ReSharper disable
. ReSharper C++ 2024.1 распознает также комментарии NOLINT
, NOLINTNEXTLINE
и NOLINTBEGIN ... NOLINTEND
, используемые clang-tidy.
В ReSharper C++ 2024.1 появилось несколько новых параметров форматирования:
При использовании конфигурации .clang-format
инструмент форматирования ReSharper теперь учитывает настройки DisableFormat
и IndentAccessModifiers
. Кроме того, поддерживается встроенный в GNU стиль clang-format.
В свежей версии ReSharper тоже много нового.
Есть бесплатная пробная версия на 30 дней