教程:使用变量和函数创建实时模板
在本教程中,您将学习如何创建并使用包含 变量和 函数的简单 实时模板。
我们将使用 Spring PetClinic应用作为示例项目。 最终生成的实时模板将:
创建一个继承自
Pet类的新 Java 类。定义一个名为
food的字符串属性,其值从一个列表中选择。实现一个打印消息的
petFood()方法。
首先,在 IntelliJ IDEA 中 打开 Spring PetClinic 应用。 如果您本地没有该应用,请从 GitHub 克隆:
克隆示例项目
该应用的源代码托管在 GitHub: https://github.com/spring-projects/spring-petclinic。
在主菜单中,前往 。
请指定存储库的 URL,然后点击 克隆。
如有必要,请同意在新窗口中打开克隆的项目。
现在我们将创建一个新的实时模板。 为了展示变量和函数在模板中的工作方式,我们将在模板文本中添加以下变量:
$ClassName$:一个继承自Pet类的新类的名称。 它没有预定义的值,这意味着在插入模板后 IntelliJ IDEA 会提示您输入类名。$Food$:包含三个可能的值的列表:meat、grass和fruit。 我们将使用enum()函数来定义此列表。 插入模板后,IntelliJ IDEA 会在编辑器中提示您选择其中一个值。$PetName$:以小写字母开头的类名,以便可在语句中使用。 这展示了decapitalize()函数对另一个变量的应用。
使用变量创建实时模板
按 Ctrl+Alt+S 打开设置,然后选择 。
选择 Java 组,点击
,然后选择 实时模板。
在 缩写 字段中,指定将用于扩展模板的字符。 例如,
pet。在 模板文本 字段中,粘贴以下模板:
type $TypeName$ struct { food string } func (p *$TypeName$) PetFood() { food := "$Food$" println("The $typeName$ eats " + food) }class $ClassName$ extends Pet { String food = "$Food$"; public void petFood() { System.out.println("The $PetName$ eats " + food); } }
如果出现 无适用上下文 警告,请点击 定义 并选择 Java ,仅在该上下文中启用该实时模板。
点击 编辑变量(E)… 并在 编辑模板变量 对话框中配置变量:
$ClassName$:保留 表达式 字段为空。 使用模板时,IntelliJ IDEA 会在插入模板后提示用户输入类名称。$Food$:在 表达式 字段中,输入enum("meat","grass", "fruit")。 使用该模板时,IntelliJ IDEA 会在编辑器中显示这些值列表供选择。$PetName$:在 表达式 字段中,输入decapitalize (ClassName)。 此函数将$ClassName$变量值的首字母转换为小写。选择 如果定义则跳过 ,因为该值是自动派生的,不需要用户输入。

使用创建的模板
在 项目 工具窗口中,导航到
拥有者包,并 创建一个新的 Java 类。 将Horse指定为类名。在编辑器中,开始输入模板缩写(例如:
pet),并从自动完成下拉菜单中选择它。将类名称作为变量值输入:
Horse。 按下 Tab 跳转到下一个变量。使用键盘箭头,选择
grass作为food字符串的值,然后按 Enter。