模板宏
当您 应用代码模板时,JetBrains Rider 会用一些值初始化 模板参数。 为了计算这些值,它使用 模板宏 ,这些宏可以根据周围的上下文检索许多有用的数据,例如当前文件名、当前解决方案名称、包含的命名空间、剪贴板内容等。 此外,宏还可以调用 代码补全操作 ,猜测并建议类型、变量、标签等。
一旦您 声明一个新的模板参数 ,该参数就会出现在 编辑变量 对话框中,您还可以为该参数选择一个宏。 在创建 源模板时,宏是通过 [宏] 属性指定的。
某些宏仅为您提供必要的项目。 例如, 当前解决方案名称或 建议标签名称。 其他宏有其自己的参数,您需要指定这些参数。 例如,如果您为模板参数选择 建议 类型的变量宏,您需要为相应的宏参数提供一个类型。
如果您未为模板参数定义任何宏,则在应用模板时会插入参数名称。 如果参数 可编辑 ,系统会建议用户编辑此名称。
掌握模板宏用法的最佳方式是研究 JetBrains Rider 的 预定义模板的丰富集合。
模板宏列表
下表列出了 .NET 特定模板中可用于变量的所有宏。
表达式 列列出了可以在 源代码模板 中使用的宏表达式,例如 [Macro(Target = "myVariable", Expression = "suggestVariableName()")]。
描述 列按其在 选择宏 对话框中的显示方式列出宏,适用于您创建或编辑 在用户界面中的模板变量 时。
表达式 | 描述 | 详细信息 |
|---|---|---|
| 没有空格字符的当前文件名 | 评估没有空白字符的当前文件名 |
| 当前父 Unity 类型名称 | 当前父 Unity 类型名称 |
| 基于父 Unity 类型名称生成 Baker 名称 | 基于父 Unity 类型名称生成 Baker 名称 |
| 实体的名称 | 如果可能,求值结果为 'nameof(entity)',否则求值结果为 'entity' |
| DependencyProperty 类型 | 求值结果为当前框架特定的依赖项属性类型 |
| 猜测 变量表示的集合的元素类型 | 分析代码并猜测集合元素的类型。 宏参数:
|
| 建议索引变量的名称 | 在求值点建议索引变量的唯一名称 |
| 不带扩展名的当前文件名,所有非字母数字字符被替换为下划线 | 求值结果为不带扩展名的当前文件名,所有非字母数字字符被替换为下划线 |
| 不带扩展名的主文件名称,所有非字母数字字符被替换为下划线 | 求值结果为不带扩展名的主文件名称,所有非字母数字字符被替换为下划线 |
| 建议数组变量 | 建议类型为数组类型的变量 |
| 插入对 类型的引用 | 求值结果为所选类型名称 宏参数:
|
| 将 另一个变量的值首字母大写 | 将字符串值变为大写(即,将首字母改为大写) 宏参数:
|
| 剪贴板内容 | 求值结果为当前文本剪贴板内容 |
| 执行基本补全 | 在对变量求值的位置显示基本代码补全列表 |
| 执行智能补全 | 在对变量求值的位置显示智能代码补全列表 |
| 执行类型补全 | 在对变量求值的位置显示类型补全列表 |
| 常量值 | 求值结果为指定常量值 宏参数:
|
| 包含类型成员名称 | 求值结果为最内层包含类型成员(例如,方法或属性)的短名称 |
| 包含类型名称 | 求值结果为最内层包含类型的短名称 |
| 包含类型引用 | 求值结果为最内层包含类型的引用 |
| 描述当前上下文的条目列表 | 提供描述当前上下文的项目列表。 包括文件名、包含的类型名称、命名空间名称等。 |
| 文件创建时的日期和时间,格式为指定的 格式 | 求值结果为当前文件的文件创建日期和时间 宏参数:
|
| 指定 格式的当前日期 | 求值结果为当前日期 宏参数:
|
| 指定 格式的当前日期和时间 | 求值结果为当前日期和时间 宏参数:
|
| 包含命名空间 | 求值结果为包含命名空间的名称 |
| 将 另一个变量的值首字母小写 | 将字符串值变为小写(即,将首字母改为小写) 宏参数:
|
| 默认命名空间 | 求值结果为当前项目的默认命名空间 |
| 当前文件的默认命名空间 | 求值结果为当前文件的默认命名空间 |
| 当前文件名 | 求值结果为当前文件名 |
| 不带扩展名的当前文件名 | 求值结果为不带扩展名的当前文件名 |
| 当前用户的完整用户名 | 求值结果为当前用户的完整名称 |
| 猜测预期集合类型的元素类型 | 如果此时需要集合类型,则猜测元素类型 |
| 猜测此时预期的类型 | 猜测此时预期的类型 |
| 新建 GUID | 生成新的全局唯一标识符(GUID) |
| 当前行编号 | 求值结果为对宏进行求值的行的编号 |
| 逗号分隔的值列表 | 在补全列表中显示指定的值列表 宏参数:
要将逗号( |
| 当前项目输出程序集名称 | 求值结果为当前项目的输出程序集名称 |
| 建议 类型的参数 | 建议指定类型的形参 宏参数:
|
| 当前项目的名称 | 求值结果为当前项目的名称 |
| 当前解决方案名称 | 求值结果为当前解决方案名称 |
| 将 另一个变量的值中的空格替换为“_” | 将空格更改为下划线(即,'do something useful' 变为 'do_something_useful') 宏参数:
|
| 建议可枚举变量 | 建议可以枚举(即,在 foreach 循环中用作集合)的可见变量 |
| 建议变量的名称 | 在变量声明(变量名称应位于此处)中执行时,建议变量的名称 |
| 建议 类型的变量 | 建议指定类型的变量 宏参数:
|
| 建议新变量的类型 | 建议在模板中声明的新变量的类型 |
| 大写形式的当前文件名,所有非字母数字字符被替换为下划线 | 求值结果为大写形式的当前文件名,所有非字母数字字符被替换为下划线 |
| 当前用户的短名称 | 求值结果为当前用户名 |
| 完整标记名称 | 插入包含标记的全名 |
| 按标记建议 XML 特性名称 | 建议当前文档相同标记中使用的 XML 特性名称 |
| 建议 XML 特性名称 | 建议当前文档中使用的 XML 特性名称 |
| 建议 XML 标记名称 | 建议当前文档中使用的 XML 标记名称 |
| 标签名称 | 插入不带命名空间的包含标记的名称 |
| 标记命名空间 | 插入包含标记的命名空间 |
| 转换为所需类型(如果需要转换) | 插入(如果需要)到应位于赋值表达式左侧的类型的转换 |
| 文件头 | 插入设置中指定的文件头 |
| 测试主体 | 插入为其生成测试的类的类型 |
| 按标记建议特性名称 | 建议当前文档相同标记中使用的特性名称 |
| 建议特性值 | 为当前 HTML 标记特性建议特性值 |
| 建议标记名称 | 建议当前文档中使用的标记名称 |
| ASP.NET Masterpage 内容生成器 | 在对变量求值时为母版页内容占位符生成内容 |
| ASP.NET MVC 操作 | 在对变量求值时显示包含可用 ASP.NET MVC 操作的补全列表 |
| ASP.NET MVC 控制器 | 在对变量求值时显示包含可用 ASP.NET MVC 控制器的补全列表 |
| 如果选择了服务器端标记,则插入 runat="server" | 如果选择了服务器端标记,则插入 runat="server" |
| Unreal 日志类别 | 评估为日志类别列表 |
| Unreal 日志详细程度 | 评估为日志详细程度列表 |
| 替换 Unreal 模板宏 | 替换 Unreal 模板宏 |
| 带有 const 的包含类型名称 | 求值结果为带 const 说明符的最内层包含类型的短名称 |
| 包含函数形参列表 | 求值结果为包含函数的形参名称的逗号分隔列表 |
| 文档: 带名称的函数形参类型 | 为每个函数形参复制包含模板行,求值结果为具有名称的形参类型 |
| 文档: 函数形参名称 | 为每个函数形参复制包含模板行,求值结果为形参名称 |
| 文档: 函数形参类型 | 为每个函数形参复制包含模板行,求值结果为形参类型 |
| 文档:函数返回值 | 仅当函数返回值类型为非 void 时才保留包含模板行 |
| 文档: 模板形参名称 | 为每个模板形参复制包含模板行,求值结果为模板形参名称 |
| 文档: 宏形参名称 | 为每个宏形参复制包含模板行,求值结果为宏形参名称 |
| 文档: 函数返回值类型 | 求值结果为函数返回值类型 |
| 文档: 实体短名称 | 求值结果为正在记录的实体的短名称 |
| 文档: 实体限定名称 | 求值结果为正在记录的实体的限定名称 |
| 枚举到字符串: 枚举器名称 | 为每个枚举器复制包含模板行,求值结果为枚举器名称 |
| 枚举到字符串: 枚举器名称作为字符串 | 为每个枚举器复制包含模板行,求值结果为具有枚举器名称的字符串 |
| 枚举到字符串: 枚举名称 | 调用操作的枚举的名称 |
| 文档和枚举到字符串模板中的换行符 | 求值结果为文档和枚举到字符串模板中的换行符 |
| 文件头(C++) | 插入设置中指定的文件头 |
| 预编译头文件 include 指令 | 如果项目不使用预编译头,则求值结果为预编译头文件的 include 指令或空字符串 |