阅读(3369) (14)

IntelliJ IDEA文件模板变量

2017-10-13 14:24:55 更新

一个 IntelliJ IDEA 文件模板中包含了文件模板变量,当您应用文件模板时,文件模板变量将被替换为它们的值。

文件模板变量是以美元符号开始的字符串,后跟变量名称。变量名称可以用大括号括起来。例如: $MyVariable 或 ${MyVariable}。

IntelliJ IDEA 预定义的文件模板变量

IntelliJ IDEA 附带了一组预定义的模板变量。

可用的预定义文件模板变量是:

  • ${PACKAGE_NAME} - 将在其中创建新类或接口的目标包的名称。
  • ${PROJECT_NAME} - 当前项目的名称。
  • ${FILE_NAME} - 将要创建的 PHP 文件的名称。
  • ${NAME} - 您在创建文件的过程中,在 "新建文件" 对话框中指定的新文件的名称。
  • ${USER} - 当前用户的登录名。
  • ${DATE} - 当前系统日期。
  • ${TIME} - 当前系统时间。
  • ${YEAR} - 本年度。
  • ${MONTH} - 本月。
  • ${DAY} - 当月的当前日期。
  • ${HOUR} - 当前时间
  • ${MINUTE} - 当前分钟。
  • ${PRODUCT_NAME} - 将在其中创建文件的 IDE 的名称。
  • ${MONTH_NAME_SHORT} - 月份名称的前3个字母。示例:1月,2月等。
  • ${MONTH_NAME_FULL} - 一个月的全名。示例:1月,2月等

IntelliJ IDEA 为 PHP 包括模板提供了一组附加变量,即可被包含在其他 PHP 文件模板中的可重用片段的模板。内置的 PHP 包含模板用于生成文件头和 PHPDoc 文档注释。以下变量在 PHP 包含模板中可用:

  • ${NAME} - 将为其生成 PHPDoc 注释的类,字段或函数(方法)的名称。
  • ${NAMESPACE} - 类或字段命名空间的完全限定名(无斜杠)。
  • ${CLASS_NAME} - 定义了生成 PHPDoc 注释的字段的类的名称。
  • ${STATIC}- 如果要为其生成注释的函数 (方法) 或字段为静态(static),则获取静态值。否则计算结果为空字符串。
  • ${TYPE_HINT}- 提示函数 (方法) 的返回值以生成注释。如果无法通过函数 (方法) 的静态分析检测到返回类型,则计算结果为 void。
  • ${PARAM_DOC} - - 参数的文档注释。计算为一组 @param 类型名称的行。如果要为其生成注释的函数不包含任何参数,则该变量将计算为空内容。
  • ${THROWS_DOC} - 异常的文档注释。计算结果为一组 @throws 类型的行。如果要为其生成注释的函数不抛出任何异常,则该变量将计算为空内容。
  • ${DS}- 一个美元字符($)。该变量计算为一个简单的美元字符($),该变量的计算结果为纯美元字符 ($),当您需要转义此符号时使用它,使其不被视为变量的前缀。
  • ${CARET} - 指出了在生成和添加评论后插入符号的位置。${CARET}只有在文件创建期间生成和插入 PHPDoc 注释时才应用。当 PHPDoc 注释是通过代码| 生成| PHPDoc 块(Code | Generate | PHPDoc block)创建的,可以使用多个函数或方法的选择,因此文档注释可以创建到几个类、函数、方法或字段。因此,IntelliJ IDEA 无法“选择”块来应用 ${CARET} 变量,因此在这种情况下,该 ${CARET} 变量将被忽略。

IntelliJ IDEA 自定义文件模板变量

IntelliJ IDEA 中除了预定义的文件模板变量之外,还可以指定自定义变量。如有必要,您可以使用 #setVTL 指令在模板中定义自定义变量的值 。

例如,如果要使用您的全名,而不是通过预定义的变量 $ {USER} 定义的登录名,请编写以下结构:

#set( $MyName = "John Smith" )

如果在模板中未定义变量的值,IntelliJ IDEA 将要求您在应用模板时指定变量。

您可以防止将模板变量中的美元字符 ($) 作为前缀处理。如果您需要一个美元字符(插入值为 $),请改用 ${DS} 文件模板变量。当应用模板时,此变量的计算结果为纯美元字符 ($)。

IntelliJ IDEA 的 #parse 指令

使用 #parse 指令,您可以在文件模板中包括其他模板。这对于将可重用内容(例如标准头,版权声明等)插入到多个文件模板中很有用。

该 #parse 指令的语法 是:

#parse("<template_name.extension>")

例如: #parse("File Header.java")。

在其他模板中可以像这样引用的模板显示在 "文件和代码模板设置" 页的 "包含" 选项卡上。