Resharper使用帮助文档
----------John 2014/8/06
一. Resharper介绍
Resharper是一款编码扩展程序。他除了.net语言版本以外,还有其他版本。比如说Java,PHP, Object C版本等。
在.net框架下,其支持VS2003,2005,2008,2010。语言支持包括c#、Vb、HTML、ASP.NET、MVC(最新支持3.0 )、JavaScript、 CSS、 XML、 XAML。
Resharper可以帮助程序员快速生成代码,分析代码,重构代码,格式化代码,代码模板,以及单元测试。可以说,熟练使用这款软件,可以大大加快编码效率,提高编码的规范性,准确性,稳健性。
以下讲解Resharper的常用功能。详细文档请参考Resharper帮助文档。相关讲解也参考了帮助文档上的相关内容。
二. 使用说明
代码分析是Resharper最常用的功能。包含错误提示,专案解析,快速修正等。
(1) 代码高亮
当代码中出现错误,或者其他可能引起异常,可改进,可优化的地方时。Resharper将会高亮显示代码。
(错误)
比如说未声明:
语法错误。
(警告提示)
当代码中出现未使用的对象,比如说值,类,命名空间等。就会以“灰色”来提示。灰色部分是可以移除的。
点击灰色代码行,再右侧会出现一个红色的灯泡:
点击Removexxx,可以移除代码行。下面的选项是设置用的,不建议改动,否则改回来比较麻烦。
(建议)
建议是Resharper另一个非常有特色的功能,通过建议,我们可以写出比较漂亮的代码,优化代码结构。同时可以养成良好的编码习惯。
(2) 专案解析
专案解析可以分析整个专案中可能出现的错误,警告。如果需要开启专案分析,你可以在右下角找到开启的按钮。
双击,然后选择OK。如果项目很大,比如说Clop,而你的电脑2G内存。那么,恭喜你,你可以感受到敲一下,卡五秒的感觉了。此功能相当耗CPU,耗内存。体质不好的童鞋,请不要玩。建议I5处理器以上,4G内存以上,64位系统的童鞋玩。不过卡过去了,也就没有那么卡了,有缓存机制的。
关闭代码分析请从设置里面关闭。
专案解析完毕,Resharper会提示相关警告,错误信息。
双击可以快速定位到代码行,也可以按 (ALT+F12)跟踪到下一个错误。Shift+ALT+F12上一个错误。
(3) 快速修正
当代码出现异常,或者警告时,可能程序员不知道怎么修正。那么使用快速修正功能,可以修正该异常。快捷键Alt+Enter
修正分两类,一类是红色,一类是。
红色的修正提示是一般是比较严重,或者强烈建议修正的问题。用蓝色曲线标注。
例如:
黄色是普通,优化性的问题。用户可以选择修正,也可以不修正。用绿色曲线标注。
(1) 智能对象
通常我们的代码提示只能完成上下文,或者专案中的对象,对于一些你想用,但是记不住名,或者单词很长,你无法准确拼写出来的代码。你可以采用短名+快捷键(Ctrl+ALT+Space)的方式去生成。
例如:
(2) 快速完成
快速完成是通过一些组合键的形式,快速生成代码片段.快捷键为 Ctrl+shift+Enter
例如,我们创建一个方法:
按Ctrl+shift+Enter 立马生成
(3) 上下文解析
上下文解析是通过自动分析程序员编写的代码,解析出可以被Resharper所识别,并可以做一定调整。程序员点击代码行,在IDE的右侧可以看到相关的图标。
解析类型分三类:
:代码编辑动作
通过该动作,可以将对象进行优化,或者调整。
:可以重构对象
例如:
我没有见过。
(4) 高亮分隔符
在编码过程中,我们有时候很难搞清(和哪个)对应。特别在(非常多得时候。那就比较头大了。在一些逻辑比较复杂的方法中,也很难找到其对应的{}。通过高亮提示分隔符,我们可以很快找到匹配的分隔符。
(5) 其他
a) 快速注释,取消注释。
快捷键Ctrl+/,取消也是Ctrl+/
注释多行代码可以选择多行,按Ctrl+/
也可以按Ctrl+shift+/
b) 复制历史
虽然我们的工作有一部分是在做重复地Ctrl+C,Ctrl+V。但是还是需要一点点手段和技巧。
快捷键Ctrl+Shift+V你看到了什么?对,复制历史。你刚才复制的东西都在里面了。
还在重复地写GetSet的属性吗?还在努力地写构造函数吗?还在一个个地实现接口对象吗?有了Resharper,你可以少些N行代码。
快捷键 alt+Insert;Ctrl+Alt+Insert
例如:
生成属性,私有对象,私有常量,请按P
生成类,构造函数,请按C
生成if,else,for,foreach
请直接按f,按Enter或者TAB键。
还有一些比如说while,try,什么的,按首字母即可。
需要完整代码模板,请按Ctrl+J。
需要插入region,请按Ctrl+Alt+J
代码清理快捷键 Ctrl+Alt+F
代码清理分两种,一种是完整清理,一种是格式化清理。
具体清理对象请看下图
完整清理会把冗余对象,冗余的this,使用自动属性,使用var,排列Using以及格式化代码行等。
而格式化代码,就是相当于把代码重新整理一下,去除冗余空格,使得代码更加整洁美观。
面对一大推的代码,我们需要快速找到使用某一对象的所有相关代码。或者查看其声明,查看代码结构。这时候就需要使用代码导航功能。
(a) 定位声明,定义:
Ctrl+鼠标左键或者Ctrl+B
按住Ctrl,在需要定位的对象上,点击鼠标右键即可找到该对象的声明,定义处。
(b) 查看代码结构
快捷键 Ctrl+F11
(c) 查看代码层次
当一个对象是另外一个对象的父类,或者子类时,通过快捷键Ctrl+Alt+H来完成代码层次的查看。
(d) 定位到声明的基类或者重载的对象
快捷键Ctrl+U
(e) 定位到对象的实现
快捷键Ctrl+Shift+Alt+B
这个快捷键太长,一般用右键菜单,选择Go To implementation。
(f) 查询对象使用情况
有时候我们需要查看一个对象,或者方法在哪里被调用了。我们可以通过使用快捷键Alt+F7,或者shift+Alt+F7来查询。
(g) 书签
当需要在某一代码行上建立书签时,可以使用快捷键Ctrl+~来实现。
选择代码行,按Ctrl+~,将鼠标移到需要插入的标签号。按Insert插入标签,移除的话,选择标签,按Delete,或者点击左侧标签,即可删除标签。
代码重构一直是一个比较头疼的问题,重命名还好,当我一个方法参数改变了,或者想提取接口,或者想把方法抽象化出来,亦或者是把抽象类变成接口。属性改成方法,方法变成属性。
通过Resharper的Refactor功能就可以安全地实现。
重构类型较多,感兴趣的话,可以查看帮助文档中的Refactor章节,里面有详细的说明。
本地化辅助主要用于在网页开发中,引用本地资源,包括文件,对象。详细可以参考帮助文档。主要功能是快捷实现对于本地对象的引用,或者加载。
单元测试功能用于测试方法,在单元测试方法左侧,可以看到如图按钮。
点击相应按钮即可完成相应方法的测试。
三. 常用快捷键
这边整理了一些常用的快捷键,供大家参考。可以打印出来贴桌上,方便记忆。
编辑
Ctrl + Space 代码完成
Ctrl + Shift + Space代码完成
Ctrl + Alt + Space代码完成
Ctrl + P 显示参数信息
Alt + Insert 生成构造函数,属性,重载成员函数,实现接口
Ctrl + Alt + J 生成if,try..catch,#region块
Ctrl + / 注释及取消//注释
Ctrl + Shift + / 注释及取消/**/注释
Ctrl + W 增量选择块
Ctrl + Shift + W 增量反选
Alt + Enter 显示错误的修正方法
Ctrl + Alt + F 格式化代码
Ctrl + Alt + O 根据指示修改优化
Ctrl + D 复制当前行或选定的块
查找
Alt + F7 查找变量,方法的引用
Alt + Shift + F7 在设定范围中查找
Ctrl + Shift + F7 高亮显示
Ctrl + Alt + Up / Down 定位到下/前一个引用
Ctrl + Alt + F7 快速定位引用位置
Ctrl + Shift + F4 关闭查找结果tab
Ctrl + Alt + U 定位到查找结果
导航
Ctrl + N 定位到类型
Ctrl + Shift + N根据文件名定位
Ctrl + E 最近文件列表
Ctrl + Shift +Backspace 上次编辑位置
Ctrl + B 跳到变量申明处
Ctrl + Alt + B 跳到继承类或接口处
Ctrl + U 调到基类
Ctrl + Shift + T 跳到类型申明处
Alt + Up / Down跳到下/上一个方法
Ctrl + F12
F2 / Shift + F2 下/上一个高亮度显示的错误
Ctrl + Shift + E Stack Trace
Refactoring
F6 将类移入另外的命名空间
Shift + F6 方法更名
Ctrl + F6 更改签名
Ctrl + Alt + N
Ctrl + Alt + M 将选定块抽取为一个方法
Ctrl + Alt + V 更改变量名称和类型
模板
Tab 根据缩写生成模板
Ctrl + J 插入模板
内置模板:
asrt 生成assertion
ear生成空数组
foreach 生成foreach 块
ital生成ArrayList的迭代循环
itar 生成array的迭代循环
itdic 生成dictionary的迭代循环
loop生成loop循环
out 打印串
outv 打印变量值
pci public const int
pcs public const string
pro protected
psr public static readonly
psvm main() method declaration
ritar Iterate an array in reverse order
sfc Safely cast variable
thr throw new
toar 将ArrayList 转化为array
四. 工具选项
我们可以根据个人需要配置Resharper的选项。
我们如果想使用Resharper的快捷键的话,需要将键位改成Resharper。
如果我们需要高亮当前行可以勾选Hightlight cuttent line
如果不喜欢Resharper的智能提示菜单,可以恢复到vs的,但是我建议大家坚持一下。Resharper的智能提示菜单比VS的要好。
大家的版本是XX版本的,所以不建议升级。
其他代码部分,以及语言设置方面,不建议大家修改。这个人家已经默认配置的比较完善了。自己改掉了,很难改回来。