实时模板变量
当您展开 实时模板 缩写时,其变量要么显示为可输入值的字段,要么被值替换。 这些值可能是您可以修改的默认值,或者是使用 函数计算得出的值。
要在模板中声明变量,请使用以下格式: $VAR$。
在表达式中,请使用不带开头和结尾的美元字符的变量名 $ ,例如 lowercaseAndDash(ComponentName)。
通过表达式定义每个变量,并在表达式求值失败时提供默认值。
此表达式可能包含以下结构:
双引号中的字符串常量
在实时模板中定义的其他变量的名称
预定义函数及其可能的参数
配置模板变量
预定义模板变量
JetBrains Rider 支持以下无法修改的预定义 实时模板 变量:
$END$表示代码段完成时文本光标的位置,您不能再按 Tab 跳到下一个变量。$SELECTION$用于环绕模板,表示要包装的代码片段。 模板展开后,会按照模板中的指定方式包装所选文本。 例如,如果您在代码中选择示例并通过指定的缩写或按下 Ctrl+Alt+T 并从列表中选择所需的模板来调用"$SELECTION$"模板,JetBrains Rider 将如下所示将所选内容用双引号括起来:"示例"。
在实时模板变量中使用的函数
以下函数可用于定义 实时模板 变量:
函数 | 描述 |
|---|---|
| 将字符串转换为 camelCase。 例如, |
| 将字符串的首字母大写。 例如, |
| 将字符串的所有字母大写,并在各部分之间插入下划线。 例如, |
| 在变量的位置调用 代码补全。 |
| 在变量的位置调用 智能类型补全。 |
| 返回所有作为参数传递给函数的字符串的拼接结果。 例如, |
| 返回当前系统日期。 默认情况下,没有参数时,它会以当前系统格式返回日期。 要使用不同的格式,请根据 SimpleDateFormat规范提供参数。 例如, |
| 返回表或视图的列列表。 上下文代码模板中使用了 |
| 返回表或视图的名称。 上下文代码模板中使用了 |
| 将字符串的首字母替换为相应的小写字母。 例如, |
| 如果表达式用于返回语句,则返回默认值。 如果表达式是错误类型,则使用 |
| 返回模板扩展时建议的字符串列表。 例如, |
| 将特殊字符转义,以便结果可以在 Java 字符串中使用。 例如,它将制表符替换为 |
| 返回模板展开时表达式的预期类型(在赋值的右侧部分、 仅在 Java 环境中可用。 |
| 返回当前文件的名称及其扩展名。 |
| 返回当前文件的名称,但不包含其扩展名。 |
| 返回当前文件的绝对路径。 |
| 返回相对于当前项目的当前文件路径。 要检查某个给定文件的相对路径,右键点击并选择 复制引用 ,或按 Ctrl+Alt+Shift+C。 |
| 返回作为参数传递的字符串的第一个单词。 例如, |
| 返回当前行号。 |
| 将字符串转换为小写并插入短横线作为分隔符。 例如, |
| 找到所有在 例如, |
| 将字符串转换为 snake_case。 例如, |
| 返回指定的字符串,并以空格作为分隔符。 例如, |
| 将传入参数中的空格替换为下划线。 例如, |
| 返回指定分隔符之前的子字符串。 这对于移除测试文件名中的扩展名很有帮助。 例如, |
| 返回当前系统时间。 默认情况下,无参数时,它会返回当前系统格式的时间。 要使用不同的格式,请根据 SimpleDateFormat规范提供参数。 例如, |
| 将带有下划线的字符串(如 snake_case )转换为 camelCase。 例如, |
| 将字符串中的下划线转换为空格。 例如, |
| 返回当前用户的名称。 |
示例
让我们为 Angular 组件创建一个 ngcomp 模板,类似于默认的 a-component。 模板将包含 3 个变量:
第一个变量
$ComponentName$将成为新组件类名称的占位符。第二个变量
$selector$将成为组件选择器的名称。第三个变量
$END$指定模板展开后光标最终应该位于的地方,并且 $ComponentName$ 和$selector$占位符已被填充。
在编辑器中选择要用于模板的代码,按下 Ctrl+Shift+A ,并调用 保存为实时模板… 操作。

输入将用于调用模板的缩写,例如
ngcomp,并添加模板描述,例如 New Angular component。
将变量添加到模板。
用
SearchComponent替换$ComponentName$。在
Component({})中添加selector:'$selector$',。将
$END$添加到ngOnInit(){}。

根据 Angular Style Guide ,选择器名称通常是组件名称的 dashed-case 版本,因此最好先指定组件名称。 然而,选择器在代码中是排在第一位的。
为了解决这个问题,请点击 编辑变量(E)… ,并使用箭头图标调整变量的顺序。 现在
ComponentName排在第一位,光标将在模板展开时首先跳转到它。
如果我们只需指定类名,并通过类名转换自动填充选择器名称,那就太好了。 为此,请点击 表达式 字段,位于
selector变量旁边,从列表中选择lowercaseAndDash函数,然后将ComponentName作为其参数输入。可选:
您可以选择 如果定义则跳过 ,位于
selector旁边。 在这种情况下,编辑组件名称并按下 Enter 后,光标将移动到$END$位置,而不是$selector$。让我们看看我们新的模板如何运行: