Мне удалось сгенерировать защиту заголовков в форме NAMESPACE_NESTEDNAMESPACE_CLASSNAME_H.Я не мог найти ничего, чтобы получить имя проекта, но в моем случае это не было проблемой, так как мое пространство имен верхнего уровня - это имя моего проекта.
После ответа @Alan Birtles я изменил класс cppмастер.Вам необходимо скопировать файлы (file.cpp
, file.h
, wizard.json
) из установочного каталога QtCreator в ваш домашний каталог ($HOME/.config/QtProject/qtcreator/templates/wizards
в Linux и macOS или %APPDATA%\QtProject\qtcreator\templates\wizards
в Windows, в соответствии с документом ).Поместите их в те же подпапки (т.е. wizards/classes/cpp
).
В wizard.json
измените строку:
{ "key": "GUARD", "value": "%{JS: Cpp.headerGuard('%{HdrFileName}')}" },
на:
{ "key": "GUARD", "value": "%{JS: Cpp.classToHeaderGuard('%{Class}', '%{JS: Util.suffix('%{HdrFileName}')}')}" },
Обратите внимание, чтоВы можете добавить статический текст по своему вкусу:
{ "key": "GUARD", "value": "RANDOM_TEXT_%{JS: Cpp.classToHeaderGuard('%{Class}', '%{JS: Util.suffix('%{HdrFileName}')}')}_INCLUDED" },
Полные файлы можно найти здесь: https://gist.github.com/juleswh/aeacc89342bc51b19044cf1e04483357
Надеюсь, это поможет!
Iиспользовали следующие ресурсы, на случай, если они могут быть полезны: