News Releases

ReSharper C++ 2021.3: поддержка Visual Studio 2022, шаблоны файлов Unreal Engine, новые возможности C++20 и C

Вышел ReSharper C++ 2021.3!

Чтобы обновиться до последней версии или бесплатно попробовать наши инструменты в течение 30 дней, перейдите на наш сайт или воспользуйтесь приложением Toolbox App.

ReSharper C++ 2021.3

Подробнее обо всех обновлениях читайте на нашем сайте. Вот некоторые из них:

СКАЧАТЬ RESHARPER C++ 2021.3

Visual Studio 2022

ReSharper С++ 2021.3 поддерживает Visual Studio 2022! Это значит, что вы сможете пользоваться привычным набором функций Visual Studio. А поскольку Visual Studio 2022 представляет собой 64-разрядное приложение, ReSharper больше не ограничен 3 ГБ оперативной памяти. Разница особенно заметна при работе с объемными решениями: вы больше не столкнетесь с проблемами производительности, возникающими из-за ограничения для 32-разрядного процесса Visual Studio. Попробуйте ReSharper C++ 2021.3 в Visual Studio 2022 и расскажите нам о своих впечатлениях!
Поддержка Visual Studio 2022 в ReSharper C++

C++20

В ReSharper C++ 2021.3 вы можете легко генерировать шаблонный код для агрегатной инициализации, используя назначенные инициализаторы C++20.
Автодополнение назначенных инициализаторов C++20

Также мы добавили инспекции, которые помогут вам освоить новые функции стандартной библиотеки:

  • std::erase и std::erase_if, стирающие элементы из любого стандартного контейнера;
  • std::contains, проверяющая, существует ли элемент в ассоциативном контейнере;
  • std::make_shared_for_overwrite и std::make_unique_for_overwrite, создающие умные указатели с инициализацией по умолчанию.

Unreal Engine

Мы добавили шаблоны файлов Unreal Engine, а значит, теперь вы можете создавать классы Unreal Engine, не переключаясь в Unreal Editor. Для этого зайдите в Solution Explorer, нажмите правой кнопкой мыши на нужную папку (или используйте Ctrl+Alt+Insert) — откроется меню Add, в котором вы сможете выбрать любой шаблон Unreal Engine. Укажите название нового класса, и ReSharper C++ сам создаст все заголовочные и исходные файлы с кодом по шаблону, распределив их по нужным папкам.
Новый символ

Поддержка C

Мы дополнили возможности кроссплатформенной разработки на C. Теперь вы можете пользоваться выражениями _Generic (из C11), указывая с помощью них условия компилятору. Также мы поддержали расширение GNU C typeof для указания типа выражения.
_Generic из C11

Мы улучшили действие Go to Declaration. Теперь вы можете переходить от выражения goto к соответствующей метке и искать объявления в неактивных блоках препроцессора.
Навигация в неактивных блоках препроцессора

Также мы обновили окно File Structure — теперь оно группирует символы с одинаковым квалификатором в квалифицированном имени.
Функции, определенные вне класса, в окне File Structure

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

Подсказка Quick Info теперь также показывает значения константных выражений. Вы можете посмотреть, как вычисляются значения операторов sizeof и alignof, выражений static_assert и др.
Вычисление sizeof

Генерировать комментарии Doxygen стало проще. Также теперь вы можете создать документирующий комментарий, поставив /// перед сущностью, которую хотите задокументировать. А чтобы добавить дополнительную строку к однострочному комментарию, просто нажмите Enter, поставив курсор на комментарий.

Change Signature

Рефакторинг Change Signature позволяет легко управлять атрибутом [[nodiscard]] (C++17). С помощью этого атрибута вы можете указать вызывающей функции, чтобы она использовала возвращаемое значение.
Управление [[nodiscard]] при помощи рефакторинга Change Signature

Анализ кода

Мы продолжаем добавлять в ReSharper C++ инспекции и быстрые исправления для улучшения качества кода. Вот некоторые из них:

  • Redundant parameter list in lambda declarator
  • Redundant elaborated type specifier
  • For-loop can be replaced with while-loop
  • Namespace definition containing single class specialization
  • May be missing keyword “throw”
  • [[nodiscard]] cannot be applied to functions without a return value
  • Abstract final class is marked ‘final’ or ‘sealed’
  • Non-overriding virtual function is marked ‘final’ or ‘sealed’

Также мы обновили встроенный Clang-Tidy до версии Clang 13 — теперь он включает проверки из свежей версии LLVM.
Clang-Tidy 13

Мы стараемся следить за качеством продукта в целом. Это было одним из наших главных приоритетов при работе над ReSharper C ++ 2021.3. В течение этого релизного цикла мы закрыли более 270 тикетов, связанных с добавлением новых функций, устранением дефектов и проблем с производительностью Вот некоторые из них:

  • Мы устранили проблемы интеграции ReSharper C++ с системой Unreal Engine Sparse Class Data.
  • Раньше при загрузке решения ReSharper мог заново запустить индексирование для проектов Unreal Engine. В новой версии мы исправили эту проблему.
  • Рефакторинг Rename теперь применим к аргументам макроса, которые используются по несколько раз при раскрытии макроса.

Подробнее обо всех возможностях, вошедших в новую версию ReSharper C++, можно прочитать здесь. А здесь мы рассказываем об изменениях платформы ReSharper. Например, дополнительные опции для проектов с GitHub во всплывающем окне Copy Code Reference позволяют легко делиться ссылками с коллегами, а для других репозиториев можно добавить собственный шаблон URI.

Расскажите, что в этом релизе ReSharper C++ порадовало вас больше всего. Пробуйте ReSharper C++ 2021.3 и делитесь впечатлениями!

СКАЧАТЬ RESHARPER C++ 2021.3

Ваша команда ReSharper C++
The Drive to Develop

Автор оригинальной статьи:

Oksana Mandryka

Elvira Mustafina