使用ReSharper自定义模板(LiveTemplates等)

模板的好处自不必多说, 一来可以减少大家的重复键入, 二来也可以更容易的保持组里面大家编写的代码的风格统一, 比如公司要求给源文件编写统一格式的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预定义好了那些模板? 可以参看下面的链接.

Predefined Templates

 

 

用户自定义模板的方法,可以参考这个链接

To create a code template from scratch

自定义模板的时候自然少不了宏

ReSharper中, 模板代码中, 在两个$之间字符串将被自动识别成一个宏变量.

比如$RETURN_TPYE$等等.

 

自定义模板中, 很关键的一个问题是:

自定义的这些宏变量, 可以被ReSharper自动设置成那些初始值?

这个问题可以参考Resharper官网的这两个连接:

Declaring Variables

Choose Macro

变量的类型还是比较丰富, 当前是文件名, 当前时间(可自定义格式), 当前用户等等都可以.

 

 

 

最后, 自定义的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="///////////////////////////////////////////////////////////&#xD;&#xA;//  $FILE_NAME$&#xD;&#xA;//  Version:1.0.0&#xD;&#xA;//  Created on:      $DATE_TIME$&#xD;&#xA;//  Original author: $AUTHOR$&#xD;&#xA;// &lt;copyright file=&quot;$FILE_NAME$&quot; company=&quot;OurCompanyName&quot;&gt;&#xD;&#xA;// Copyright (C) $YEAR$ Oki Data Corporation&#xD;&#xA;// &lt;/copyright&gt;&#xD;&#xA;// &lt;summary&gt;Defines the $FILE_NAME_NO_EXTENSION$ class.&lt;/summary&gt;&#xD;&#xA;///////////////////////////////////////////////////////////&#xD;&#xA;" 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(&quot;yyyy/MM/dd hh:mm:ss&quot;)" initialRange="0" />
      <Variable name="AUTHOR" expression="getUserName()" initialRange="0" />
      <Variable name="YEAR" expression="getCurrentDate(&quot;yyyy&quot;)" initialRange="0" />
      <Variable name="FILE_NAME_NO_EXTENSION" expression="getFileNameWithoutExtension()" initialRange="0" />
    </Variables>
    <CustomProperties />
  </Template>
</TemplatesExport>
 

 

 

 

你可能感兴趣的:(template)