【发布时间】:2018-01-29 04:33:45
【问题描述】:
CLion 使用 Apache 的 Velocity 模板语言 (VTL) 为 C++ 和 C 文件创建模板。 在 CLion 的帮助下 (https://www.jetbrains.com/help/clion/file-template-variables.html) 列出了一堆可以使用的变量。
但是,我想知道,是否可以在我的一个模板中使用创建 C++ 文件的目录作为变量? 我问这个是因为我喜欢以 java/package-type 的方式构造我的源文件。
“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 来说纯粹是象征性的,他们的网站将其列为“表示重构期间创建的命名空间块的开始/结束”。
【问题讨论】:
-
希望有答案,不知道为什么这么难找到
标签: c++ apache velocity clion vtl