文件模板变量
一个 file template 可以包含变量,在应用模板时会被其值替换。 变量是一个以美元符号开头的字符串 $ ,后跟变量名。 变量名称可以选择性地用花括号括起来。 例如: $MyVariable 和 ${MyVariable} 是同一个变量的不同表示法。
在模板主体和文件名中可以使用预定义和自定义变量。 例如,如果您在模板的 文件名 字段中输入 MyFile_${MONTH_NAME_FULL} ,生成的文件会在四月份创建时命名为 MyFile_April。 这里, ${MONTH_NAME_FULL} 是一个 预定义变量。 如果您使用 自定义变量,那么 CLion 会在您基于此模板创建文件时提示您输入变量值。

预定义模板变量
文件模板中可以使用以下预定义变量:
变量 | 描述 |
|---|---|
| 覆盖生成期间的基本函数调用签名 |
| 当前系统日期 |
| 当前日期 |
| 函数的默认返回值 |
| 新文件所在目录的路径(相对于项目根目录) |
| 美元符号 |
| 新建 C 或 C++ 文件的名称 |
| 始终返回 |
| 为类或源文件生成的头文件名称 |
| 当前小时 |
| 防止重复包含特定头文件 |
| 当前分钟 |
| 当前秒 |
| 当前月份 |
| 当前月份的全名(如一月、二月等) |
| 当前月份名称的前三个字母(如 Jan、Feb 等) |
| 新实体的名称(文件、类、接口等) |
| 重构期间创建的命名空间块的结束 |
| 重构期间创建的命名空间块的开始 |
| IDE 名称(例如,CLion) |
| 当前项目的名称 |
| 函数返回值的类型(用于生成新函数) |
| Google 测试套件名称 |
| Google 测试名称 |
| 当前系统时间 |
| 当前用户的登录名(所有平台) |
| 对于 Windows 和 Linux:当前用户的登录名 对于 macOS:用户注册的全名 |
| 当前年份 |
以下变量可用于 CMakeLists.txt 文件模板:
${CMAKE_DEFAULT_PROJECT_FILE} | 项目的 main.cpp / main.c / libary.cpp / library.c 文件。 |
${CMAKE_LANGUAGE_VERSION} | 所选的语言标准。 |
${CMAKE_MAJOR_VERSION} | 最低支持的 CMake 版本的主版本号。 例如,如果版本为 |
${CMAKE_MINOR_VERSION} | 最低支持的 CMake 版本的次版本号。 例如,如果版本是 |
${CMAKE_LIBRARY_TYPE} |
|
${QT_VERSION} | 所选的 Qt 版本。 |
${REQUIRED_LIBS} | 所选项目类型所需的 Qt 库。 默认情况下,对于 Qt 控制台可执行文件,它们是 |
变量方法
由于 CLion 使用 Velocity 作为文件模板的模板引擎,文件模板中的变量可以使用 Java String 方法。 例如,以下是可能的:
${NAME.toUpperCase()}:将新实体(文件)的名称转换为大写字母。${PROJECT_NAME.length()}:打印项目名称的长度。${PRODUCT_NAME.substring(0,5)}:打印您使用的 IDE 名称的前五个字符。
自定义模板变量
除了预定义模板变量,还可以指定自定义变量。 如果必要,可以在模板中使用 #set 指令直接定义自定义变量的值。 在使用相应的变量之前编写指令。
例如,如果您希望使用您的全名而不是通过预定义变量 ${USER} 定义的登录名,请在自定义变量之前添加以下构造:
如果变量的值在模板中未定义,CLion将会在应用模板时要求您指定该值。