Производитель: JetBrains
JetBrains ReSharper C++
Программное обеспечение JetBrains ReSharper C++ является расширением для Microsoft Visual Studio, которое предлагает разработчикам функции рефакторинга, навигации, проверки кода, быстрой генерации и оптимизации кода и многое другое. ReSharper C++ может создавать большую часть кода, начиная от конструкторов, методов чтения и задающих методов и заканчивая hash- и swap-функциями. Решение ReSharper C++ обеспечивает последовательную поддержку стиля кода, а также анализ и улучшение качества кода посредством подсветки синтаксиса. Кроме того, программа предлагает механизм поиска элемента Find Usages с опцией предпросмотра, фильтрами поиска и различными возможностями группировки.
Статический анализ кода
ReSharper C++ анализирует проекты и предлагает исправления для проблем, которые находит, а также рекомендует те или иные улучшения. Если имеется прототип функции, но не хватает ее определения, ReSharper C++ предложит сгенерировать тело функции либо в этом же, либо в отдельном файле.
Макросы и шаблоны
ReSharper С++ полностью понимает все макросы, так что анализ осуществляется именно на том коде, который получится после препроцессинга. Это дает ряд уникальных возможностей: например, можно «разворачивать» макросы прямо в коде.
Навигация и поиск
ReSharper C++ позволяет очень быстро перемещаться по крупным проектам и искать в них нужный код. Вот некоторые из поддерживаемых возможностей навигации:
- Go to Everything находит по названию любой тип сущности (класс, член класса, файл или папку). Результаты также можно фильтровать более узкими командами, такими как Go to Type, Go to File и Go to Symbol.
- Go to File Member позволяет быстро найти символ в том файле, где сейчас проходит работа.
- Go to Base/Derived помогает искать наследников и родителей по классам или элементам класса. Go to Definition позволяет быстро перейти к месту объявления символа.
- Go to Related Files применяется для перехода к файлам, которые имеют какое-то отношение к текущему. Это могут быть включенные заголовочные файлы или CPP-файлы. Кроме того, ReSharper позволяет быстро переходить между заголовочным и СРР-файлами (Ctrl+B).
Для поиска всех вхождений того или иного символа в ReSharper C++ имеется механизм Find Usages с возможностями предварительного просмотра, группировки и фильтрации.
ReSharper С++ также включает в себя несколько окон для навигации в больших сложных проектах. Одно из этих окон называется File Structure: оно позволяет быстро сориентироваться в структуре текущего файла
В ReSharper С++ есть поддержка следующих механизмов:
- Live Templates – шаблоны, которые ведут себя подобно Visual Studio snippets, но они намного более чувствительны к контексту, а их поведение можно программировать под свои задачи.
- Surround templates позволяют выделить часть кода и обернуть ее в ту или иную конструкцию, например в if или try-catch выражение.
- File templates дают возможность создавать как отдельные файлы, так и сразу генерировать несколько файлов с предустановленными настройками.
Возможности рефакторинга кода:
- Rename позволяет переименовать символ (например, имя класса или поля) и его вхождения во всем проекте.
- Introduce Variable позволяет выделить часть вычислений и сохранить их в отдельной переменной
- Extract Method позволяет создать отдельную функцию из выделенного блока кода, правильно передав и вернув все нужные переменные.