diff --git a/wiki/Prog/Development/CMake управление проектом.adoc b/wiki/Prog/Development/CMake управление проектом.adoc index 1a64ee8..c8174d3 100644 --- a/wiki/Prog/Development/CMake управление проектом.adoc +++ b/wiki/Prog/Development/CMake управление проектом.adoc @@ -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 +---- + + + + === Динамический анализ программы diff --git a/wiki/images/clazy-fix/clazy1.png b/wiki/images/clazy-fix/clazy1.png new file mode 100644 index 0000000..3b6167e Binary files /dev/null and b/wiki/images/clazy-fix/clazy1.png differ diff --git a/wiki/images/clazy-fix/clazy2.png b/wiki/images/clazy-fix/clazy2.png new file mode 100644 index 0000000..d8e8666 Binary files /dev/null and b/wiki/images/clazy-fix/clazy2.png differ