This commit is contained in:
Andrei Astafev 2020-04-19 11:31:30 +03:00
parent ac859dc4ec
commit 36d088e75c
3 changed files with 47 additions and 0 deletions

View File

@ -1172,6 +1172,7 @@ https://clang.llvm.org/extra/clang-tidy[Clang Tidy],
https://clang-analyzer.llvm.org[Clang Static Analyzer] и
https://www.viva64.com/ru/pvs-studio[PVS-Studio].
[[clazy-check]]
==== clazy
Функция `add_clazy_check` создаёт цели, которые используются
@ -1223,6 +1224,52 @@ add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_hpp} ${TRGT_moc_hpp})
add_pvs_check(${TRGT})
----
=== Автоматическое исправление кода
IMPORTANT: Редактирование кода в автоматическом режиме может приводить
к его неработоспособности, хотя это и маловероятно. Перед выполнением
действий, приведённых в данном раздела, желательно фиксировать текущее
состояние в репозитории или делать резервную копию.
==== clazy
Программа clazy может преобразовывать в программах, использующих Qt,
подключения сигналов и слотов старого типа, производить замену старых ключевых
слов, подставлять оптимизированные способы для инициализации строк,
исправлять циклы и передачу аргументов в функции для избежания лишних копирований.
Для включения автоматического исправления нужно в настройках сборки проекта
menu:[Проекты > Настройки сборки] выбрать цель `clazy-check`:
[.text-center]
.Выбор цели
image::clazy-fix/clazy1.png[clazyfix1,pdfwidth=70%,scaledwidth=90%,align="center"]
Затем в перечне опций включить `CMLIB_CLAZY_FIX` и нажать кнопку
btn:[Применить изменения]:
[.text-center]
.Разрешение автозамены
image::clazy-fix/clazy2.png[clazyfix2,pdfwidth=70%,scaledwidth=90%,align="center"]
Пример проекта, в котором показаны возможности clazy, можно посмотреть
https://git.246060.ru/f1x1t/cmlib-example-clazy-fix[здесь]. Содержание
изменений, произведённых автоматически, можно увидеть
https://git.246060.ru/f1x1t/cmlib-example-clazy-fix/commit/81ed1e72b14f17bac0a39ab41bc3ba0ba2bdcb8e?style=split[здесь].
Можно сделать копию репозитория и выполнить правки в автоматическом режиме
самостоятельно:
[source,sh]
----
git clone --recursive https://git.246060.ru/f1x1t/cmlib-example-clazy-fix
----
=== Динамический анализ программы

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB