模板的好处自不必多说, 一来可以减少大家的重复键入, 二来也可以更容易的保持组里面大家编写的代码的风格统一, 比如公司要求给源文件编写统一格式的Copyright等等.
使用Resharp可以为Visual Studio定义模板.
菜单栏点击[ReSharper]->[Live Templates..], 可以打开Templates Explorer.
通过Templates Explorer可以执行浏览, 添加, 删除,编辑, 以及导入导出等各种模板操作
模板种类以及对应的默认快捷键如下:
Live Templates: Ctrl+J
Surround Templates : Ctrl+Alt+J
File Templates: Ctrl+Alt+Ins
关于这三个种类的介绍, 可以参考这个链接:Live Templates ,
Resharper预定义好了那些模板? 可以参看下面的链接.
用户自定义模板的方法,可以参考这个链接
To create a code template from scratch
自定义模板的时候自然少不了宏
ReSharper中, 模板代码中, 在两个$之间字符串将被自动识别成一个宏变量.
比如$RETURN_TPYE$等等.
自定义模板中, 很关键的一个问题是:
自定义的这些宏变量, 可以被ReSharper自动设置成那些初始值?
这个问题可以参考Resharper官网的这两个连接:
变量的类型还是比较丰富, 当前是文件名, 当前时间(可自定义格式), 当前用户等等都可以.
最后, 自定义的Templates可以导入导出为XML文档, 在组内共享.
下面的xml是我们导出的一个Copyright模板的代码, 对于宏变量我们可以看出他对应的实现函数.
形如下面这样:< Variable name = "FILE_NAME" expression = "getFileName() " initialRange = "0" />
<TemplatesExport family="Live Templates"> <Template uid="3b0a789b-3b12-4c6c-a1fc-36d2ea58118c" shortcut="copyright" description="sCopyRight template$" text="///
// $FILE_NAME$
// Version:1.0.0
// Created on: $DATE_TIME$
// Original author: $AUTHOR$
// <copyright file="$FILE_NAME$" company="OurCompanyName">
// Copyright (C) $YEAR$ Oki Data Corporation
// </copyright>
// <summary>Defines the $FILE_NAME_NO_EXTENSION$ class.</summary>
///
" reformat="True" shortenQualifiedReferences="True"> <Scopes> <Scope type="Everywhere" /> </Scopes> <Categories /> <Variables> <Variable name="FILE_NAME" expression="getFileName()" initialRange="0" /> <Variable name="DATE_TIME" expression="getCurrentTime("yyyy/MM/dd hh:mm:ss")" initialRange="0" /> <Variable name="AUTHOR" expression="getUserName()" initialRange="0" /> <Variable name="YEAR" expression="getCurrentDate("yyyy")" initialRange="0" /> <Variable name="FILE_NAME_NO_EXTENSION" expression="getFileNameWithoutExtension()" initialRange="0" /> </Variables> <CustomProperties /> </Template> </TemplatesExport>