模板变量
代码模板的主体可以包含:
表示源代码结构和注释的纯文本。 在应用模板时,它会按原样插入。
模板 变量 会在应用模板时动态替换。 模板 变量 的格式如下:
$PARAM_NAME$- 其中PARAM_NAME是任意标识符。
预定义变量
以下模板 变量 已在 JetBrains Rider 中预定义:
$END$— 应用模板后光标的位置。$SELECTION$— 用户在调用模板之前选择的文本。 此 变量 仅用于 环绕模板。$SELSTART$— 应用模板后将被选中的文本块的起始位置 之后。$SELEND$— 应用模板后将被选中的文本块的结束位置 之后。
用户定义变量
创建或编辑模板时,所有其他 变量 都可以 用任意标识符定义。 通常,您需要为 变量 提供 宏 ,以便在应用模板时计算其值。
此外,您可以使每个 变量 可编辑,以便用户在 应用模板时更改其值。
可编辑变量
如果代码模板没有可编辑的 变量,它会立即应用,无需用户交互;所有不可编辑的 变量(如果有)将通过 宏自动计算(例如,通过插入固定值、当前命名空间、类型名称,甚至剪贴板内容)。
将模板代码插入到源代码后,您可以在模板开发者通过 $END$ 或 $SELEND$ 变量 指定的位置继续输入,但如果需要更改插入代码的某些部分,您只能返回并编辑它。
相比之下,可编辑的 变量 将显示可能需要更改的字段,并且通常会由底层宏为其建议合理的选项。 在熟悉 JetBrains Rider 的过程中,您会发现其许多预定义模板都具有可编辑的 变量。 您还可以研究 创建和编辑模板 部分,了解如何创建和编辑具有可编辑 变量 的自定义模板。
例如,一个设计良好的用于遍历容器中所有元素的模板将使用可编辑的 变量,以便您选择:
一个 适合的循环索引变量名称(例如,
i或j)。一个 当前作用域中指定类型的所有变量列表(例如,Arrays 或 Lists)作为迭代容器的表达式。
一个 适合的分配变量名称,用于在迭代期间保存当前容器元素。
迭代容器中元素的类型。
当应用具有可编辑 变量 的模板时,JetBrains Rider 会在编辑器中部署一个 热点会话。 此会话让您逐步指定或选择所有 变量 的值。 您可以用自己的输入替换 变量,或者接受建议的值之一。
在 使用实时模板创建源代码和 用模板环绕代码片段部分中提供了应用具有可编辑 变量 的模板的示例。