教程:创建一个带有变量和函数的实时模板
在本教程中,您将学习如何创建并使用一个简单的 实时模板 ,其中包含 变量 和 函数。
我们将使用 Spring PetClinic应用程序作为示例项目。 最终的实时模板将:
创建一个新的 Java 类,该类继承自
Pet类。定义一个名为
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。