ReSharper提供多种代码模板,它们可以帮助您快速编写代码结构,以封闭块包围现有代码,或者创建新文件。 您可以创建特定于自己的编码习惯或基本代码的模板。
实时模板是ReSharper的更智能版本的Visual Studio代码段。
要应用实时模板,只需输入模板缩写,然后在补全列表中按Tab展开模板。 之后,使用Enter或Tab在模板参数中导航。 (如果您使用Visual Studio的原生代码补全,请按Ctrl+E、L显示可用实时模板的列表,并展开模板。)
与代码段不同,ReSharper可以在相应的模板中从能够使用变量、字段和类型的上下文预测。 大多数情况下,您无需自己输入任何内容。 只需从建议值的列表中选择。 而且,ReSharper 可为 C# 导入 Visual Studio 代码段,并让它们能够用作实时模板。
ReSharper为大多数支持的语言和技术提供了170多个预定义实时模板。 此列表包含多个模板,可用于通过集合迭代,编写断言方法,创建新数组,输出值,编写LINQ查询,生成自动属性,等等。
包围模板可以使用if...else
、try...catch
或其他代码结构快速包围表达式、单个语句或任意的代码块。 ReSharper会智能地重新设置代码格式,调整选择,以及/或者重定位脱字符号,这样,您可以在应用模板后立即继续输入。
要包围一段代码,请选择代码,然后按Ctrl+E、U,这会显示一个包含可用包围模板的专用弹出窗口。 或者,您可以在选择上按Alt+Enter,这会显示上下文菜单,其中包含适用的包围模板与其他功能,例如代码格式化程序和上下文操作。
ReSharper让您能够添加包含预定义代码片段的新文件和文件组。 例如,您可以使用类声明、接口和结构体声明等创建新文件。 要从文件模板列表中选择,请按Ctrl+Alt+Ins,无需离开文本编辑器。
如果文件模板设计用于创建多个文件,ReSharper会在您的解决方案的指定位置添加这些文件,并使用同步参数初始化它们的内容。
后缀模板可以帮助您转换已经输入的表达式,无需向后跳转。 例如,您可以使用if
、while
、lock
、using
包围当前的表达式,在当前表达式前面添加return
、yield return
和await
,在集合上迭代,生成switch语句,将表达式转换为特定类型,甚至为表达式引入字段或属性。
您可以使用自定义源模板轻松扩展后缀模板的列表,在项目代码中的任何位置都能以扩展方法的形式创建后缀模板。 您能够以使用 JetBrains.Annotations 框架中的 [SourceTemplate]
属性修饰的公开扩展方法形式,为项目的一些特定类型或任何标准类型定义后缀模板。
为了阐明源模板的使用,我们可以创建一个简单的模板,此模板将帮助我们检查double值与Pi的相等性,并将您的脱字符号移动到下一行单元测试。
现在,我们可以在计算结果为double值的任何表达式后面输入点,然后调用创建的模板。
当您在补全列表中选择模板后,表达式会被替换为模板代码,且脱字符号会按模板中所述移动。
您可以创建自己的模板,以及修改ReSharper捆绑的模板。
为了编辑模板,ReSharper提供了Template Editor,此工具会在单独的Visual Studio代码窗格中打开,让您可以在代码和模板编辑环境之间切换,并能更快速地完成模板的实际测试。
您可以使用Templates Explorer管理模板 - 选择ReSharper | Tools | Templates Explorer可以调用此窗口。
定义后,使用Templates Explorer能够以两种方法轻松在团队成员之间共享任何模板。
与团队成员共享模板的另一种方法是将设置层的机制用作 ReSharper 设置中保存的代码模板。 为了让使用同一共享解决方案的其他开发者能够利用模板,您可以在团队共享的设置层中创建新代码模板,或者将现有模板复制到团队共享的设置层。
您也可以将代码模板导出到文件中,分发给其他开发者或者与他们共享。 相应地,您可以导入由其他开发者创建和共享的代码模板。
本页面提供的所有键盘快捷键都在 ReSharper 的默认“Visual Studio”按键映射中。 有关 ReSharper 两种按键映射的详细信息,请参阅 ReSharper 文档。