CLion использует Apache Velocity Template Language (VTL) для создания шаблонов для файлов C ++ и C.
На помощь CLion (https://www.jetbrains.com/help/clion/file-template-variables.html) перечислены переменные, которые можно использовать, перечислены.
Мне было интересно, однако, можно ли использовать каталог, в котором файл C ++ создается в качестве переменной в одном из моих шаблонов?
Я спрашиваю об этом, потому что мне нравится структурировать мои исходные файлы в стиле java / package.
Все файлы в каталоге «Utils» являются частью пространства имен «Utils», все пакеты в каталоге «Ui» являются частью пространства имен «Ui» и т. Д.
Так что мне было интересно, есть ли способ получить родительский каталог файла, чтобы я мог использовать его в шаблоне? (Может быть, установив переменную в моем CMakeLists.txt
?)
Вот пример того, чего я хотел бы достичь
#parse("C File Header.h")
#[[#ifndef]]# ${INCLUDE_GUARD}
#[[#define]]# ${INCLUDE_GUARD}
${NAMESPACES_OPEN}
namespace ${CWD}
class ${NAME}
{
};
${NAMESPACES_CLOSE}
#[[#endif]]# //${INCLUDE_GUARD}
где ${CWD}
представляет папку, в которой находится файл
${NAMESPACE_OPEN}
а также ${NAMESPACE_CLOSE}
Директивы кажутся чисто символическими для CLion, их веб-сайты перечисляют это как «указывает начало / конец блока пространства имен, созданного во время рефакторинга».
Задача ещё не решена.
Других решений пока нет …