Поддерживаемые спецификации C/C++ | C/C++ | C/C++ |
| C++/CLI | C++/CLI |
| C++/CX | Не поддерживается |
| HLSL | HLSL |
Анализ кода и исправления | Анализ кода на лету во время разработки (ошибки и предупреждения компилятора) | Анализ кода на лету во время разработки (ошибки и предупреждения компилятора, более 230 собственных инспекций кода) |
Быстрые исправления для решения проблем в коде | Более 290 быстрых исправлений для решения проблем в коде |
| Интегрированная диагностика и проверки Clang-Tidy | Интегрированная диагностика и проверки Clang-Tidy |
| | Интегрированная диагностика и проверки UnrealHeaderTool |
| | Проверка правописания |
| | Анализ включенных заголовочных файлов |
| | Уведомление обо всех ошибках и проблемах качества кода в любой области, вплоть до всего решения |
| | Настраиваемые инспекции кода: настроить 5 уровней критичности ошибок можно прямо в меню по Alt+Enter |
| | Настройки анализа кода на уровне решения и их совместное использование внутри команды разработчиков |
Рефакторинги и преобразования кода | Переименование | Переименование |
Изменение сигнатуры | Изменение сигнатуры |
| Извлечение функции | Извлечение метода |
| Реализация чисто виртуальных функций | Генерация переопределяющих членов |
| Создание объявления/определения | Генерация определения/реализации по объявлению |
| Перемещение определения функции | Перенос реализации в исходный файл |
| Преобразование в необработанный строковый литерал | Преобразование в необработанный строковый литерал и обратно |
| | Преобразование в перечисление с областью видимости |
| | Введение поля |
| | Введение псевдонима пространства имен |
| | Введение typedef |
| | Введение using enum |
| | Введение переменной |
| | Встроенные функции |
| | Подстановка переменной |
| | Встроенный typedef |
| | 65+ контекстных действий (автоматические локальные преобразования кода) |
Помощь при написании кода | Автодополнение кода | Автодополнение кода с умными подсказками и использованием CamelCase |
Подсветка синтаксиса | Подсветка синтаксиса (настройка цветов 25+ различных идентификаторов) |
| Подсказки для элементов кода | Подсказки для подсвеченного кода и отображение документирующих комментариев |
| Расширение/сужение области выделения | Расширение/сужение области выделения |
| Комментирование выделенных фрагментов (тип комментария выбирается автоматически) | Блочное и однострочное комментирование выделенных фрагментов |
| Быстрые подсказки и информация о параметрах | Быстрая документация и информация о параметрах |
| | Встроенные подсказки для имен параметров и типов, пространств имен, преобразований типов и директив препроцессора; режим Push-to-Hint |
| | Реорганизация элементов кода |
| | Автоматическое добавление пропущенной директивы #include |
| | Автодополнение импортов и постфиксное автодополнение |
| | Автоматическое завершение блоков кода |
| | Выделение текущего члена |
Навигация и поиск | Навигация к элементу | Поиск по всей кодовой базе |
Переход к объявлению | Переход к объявлению (переход от использования к соответствующей директиве препроцессора), в том числе работающий для неразрешенных идентификаторов и комментариев |
| Быстрый просмотр объявлений | Быстрый просмотр объявлений, использований, базовых символов, реализаций |
| Закладки в коде | Закладки в коде |
| Быстрый запуск | Поиск действий и настроек |
| Поиск ссылок | Поиск использований |
| Генерация графа включенных файлов | Окно иерархии включений |
| Иерархия вызовов | Не поддерживается |
| Переход к символу | Переход к символу |
| Переход к типу | Переход к типу |
| Переход к файлу | Переход к файлу |
| Переход к члену файла | Переход к члену файла |
| | Переход к тексту с применением нечеткого поиска |
| | Переход к базовым символам |
| | Переход к производным символам |
| | Переход к связанным файлам |
| | Переход к соседним файлам |
| | Переход к местам в коде, которые были недавно просмотрены или отредактированы |
| | Переход к основному шаблону или к его специализациям |
| | Переключение между заголовочными/исходными файлами |
| | Подсветка использований в файле |
| | Навигация вверх и вниз по иерархии наследования в редакторе |
| | Контекстная навигация по точкам останова |
| | Окно иерархии типов |
| | Просмотр структуры файла |
| | Навигация между объектами To-do |
| | Нахождение текущего файла в Solution Explorer |
Генерация кода | Фрагменты кода (шаблоны) | Фрагменты кода (шаблоны), в том числе шаблоны live, surround и postfix |
Генерация файлов из шаблона | Генерация файлов из шаблона |
| Генерация кода с помощью автодополнения | Генерация кода с помощью автодополнения |
| | Визуальный редактор фрагментов кода (шаблонов) |
| | Добавление предваряющего объявления (forward declaration) или автодополнение директивы #include с автодополнением для импорта |
| | Генерация кода на основе использований |
| | Генерация конструкторов |
| | Генерация определений |
| | Генерация пропущенных операторов case |
| | Генерация документирующих комментариев |
| | Генерация отсутствующих/переопределяющих членов |
| | Генерация операторов copy и move |
| | Генерация функций get и set |
| | Генерация операторов равенства |
| | Генерация операторов сравнения |
| | Генерация операторов потока ввода-вывода (включая функции Boost.Serialization ) |
| | Генерация hash-функции |
| | Генерация swap-функции |
| | Генерация методов Google Mock |
| | Генерация функции для преобразования перечисления в строку (настраиваемая) |
| | Генерация пропущенных членов |
Форматирование и очистка кода | Переформатирование кода | Применение правил форматирования в любой области видимости (с использованием собственных правил форматирования ReSharper C++) |
Поддержка EditorConfig | Поддержка EditorConfig |
| | Поддержка Clang-Format |
| | Обучение правилам форматирования на основе существующего кода |
| | Визуальный редактор для настройки правил форматирования выделенного кода |
| | Окно File Formatting для исследования значений настроек и файлов, влияющих на текущий файл |
| | Настраиваемые правила именования с предустановленными схемами (STL, Google, LLVM, CamelCase, Microsoft) |
| | Настраиваемые правила для сортировки директив #include |
| | Настаиваемый стиль синтаксиса для инициализации, объявлений, переопределяющих функций, использования auto , положения cv-квалификаторов и скобок |
Юнит-тестирование | Окно Unit Test Explorer | Окно Unit Test Explorer |
Поддержка Microsoft Unit Testing Framework для C++ | Не поддерживается |
| Поддержка Google Test | Поддержка Google Test |
| Поддержка Boost.Test | Поддержка Boost.Test |
| Поддержка CTest | Не поддерживается |
| | Поддержка Catch |
| | Поддержка Doctest |
| | Запуск тестов из редактора |
| | Несколько сеансов юнит-тестирования |
Отладка | Подсказки DataTips в редакторе | DataTips с возможностью поиска и настраиваемым отображением объектов в редакторе |
Окно точек останова | Окно точек останова с предварительным просмотром, контекстным поиском, группировкой и экспортом |
| | Отслеживание значений переменных |
| | Фильтры для пошаговой отладки |
Поддержка Unreal Engine | | Поддержка правил именования Unreal Engine |
| Встроенные инспекции UnrealHeaderTool |
| | Работа с файлами шейдеров (HLSL) |
| | Поддержка удаленного вызова процедур Unreal Engine |
| | Автодополнение спецификаторов рефлексии Unreal Engine |
| | Поддержка проектной модели Unreal Engine (дает возможность делать автодополнение на основе ссылок на плагины и модули) |
| | Динамические обновления в соответствии с изменениями в .Build.cs, .Target.cs, .uproject и .uplugin |
Управление настройками | Синхронизация настроек через Microsoft ID | Синхронизация настроек и пользовательских шаблонов внутри команды через VCS или любой файловый хостинг |
| | Многоуровневая система хранения настроек, поддерживающая разные настройки для разных решений |
| | |