65.9K
CodeProject 正在变化。 阅读更多。
Home

ReSharper 的美妙世界

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.85/5 (4投票s)

2016年1月7日

CPOL

7分钟阅读

viewsIcon

11064

我使用 ReSharper 已经有 4 年了,认为它是迄今为止我发现最有用的工具。这篇文章的目的是重点介绍我最喜欢的一些功能。

我使用 ReSharper 已经有 4 年了,认为它是迄今为止我发现最有用的工具。这篇文章的目的是重点介绍我最喜欢的一些功能。对于 ReSharper 新手来说(你之前在哪儿?),这篇文章会提供大量节省时间的技巧,而经验丰富的用户可能会发现一些隐藏的额外宝石。如果我没有列出你喜欢的快捷键,请随意补充!

复制文本 (CTRL-D)

在进行大量文本编辑时,这是一个非常有用的节省时间的功能。只需将光标放在代码行的任何位置,即可将整行复制到下方,或者选中要复制的内容进行复制。这是另一种复制文本的方式,不使用 Windows 剪贴板,这意味着你可以从某个地方复制一段文本(例如属性名称),使用 CTRL-D 复制一行代码,然后将剪贴板中的文本粘贴到复制行上需要的位置。

转到类型 (CTRL-T)

导航到另一个类型的快捷方式。您可以通过输入类名中每个单词的首字母来进一步使用此快捷键(例如,要导航到 HomeController,请输入 HC)。

转到文件 (SHIFT-CTRL-T)

与“转到类型”类似,但它导航的是文件名。这在进行 BDD(我将在另一篇文章中介绍!)时尤其有用,因为您可能在一个代码文件中拥有多个类,或者正在使用部分类。

转到符号 (Shift-ALT-T)

类似于“转到类型”和“转到文件”,这个功能允许您搜索单个方法名称。它使用通配符映射和首字母快捷键,与类型和文件类似。非常感谢 Stack Overflow 用户 @dmitry-osinovskiy 提供的这个功能!

转到定义 (CTRL-Click)

按住 CTRL 键并将鼠标悬停在类名或成员上时,它们会显示下划线。单击即可转到定义。

文件结构窗口 (CTRL-ALT-F)

这是一个非常有用的窗口,用于分析和导航类。我通常把它放在工具箱所在的位置,它使您可以非常轻松地在类内移动代码块,以及将代码块包含在区域中。这是快速为类添加结构的一种方式,按访问修饰符对方法进行分组,将属性和字段分开等等。如果您使用 FxCop 或 StyleCop,它会非常方便。

单元测试运行器

无处不在的单元测试运行器。Visual Studio 的一个绝佳补充,任何尝试使用 Visual Studio 内置测试运行器的人都会告诉你。它允许您在 Visual Studio IDE 中轻松运行和调试单个测试或整个测试套件,并清晰地指示通过和失败的情况。

高亮显示用法 (SHIFT-ALT-F11)

Visual Studio 2010 中实现了此功能的一个变体,当您单击某个类成员时,该成员的出现之处会被高亮显示。这种方法的缺点是,只有当光标保留在所讨论的成员上时才起作用。ReSharper 的版本会将成员在写入或声明时高亮显示为粉红色,在读取时高亮显示为蓝色。它还会告诉您当前高亮显示的用法是否是唯一的用法。只需按 Escape 即可清除高亮显示。

导航到 (ALT-`)

很棒的小上下文菜单。导航到符号的用法、声明、实现、对象浏览器、元数据或相关文件。

颜色标识符

这更多的是一个有用的代码可读性功能,而不是一个快捷方式。如果您启用颜色标识符,属性、方法和字段会被着色为紫色,这使得代码更易于阅读。此外,常量值会加粗显示,用鼠标悬停在它们上面时,值会在工具提示中弹出。通过 ReSharper 选项菜单下的“代码检查 > 设置”启用此功能。

代码清理 (CTRL-E, F)

既然我们谈论 ReSharper 菜单,在底部的“工具”部分,您会找到“代码清理”。是否曾在某个组织工作过,并希望他们有每个人都遵循的编码标准?如果您幸运地在组织中有编码标准,您可能已经在使用了此功能。添加一个新配置文件,您将可以使用许多丰富的配置选项来使您的代码更加优雅。一旦您对设置的选项感到满意,遵循公司编码标准应该会变得轻而易举。

“重新格式化代码”这个看似无害的选项是造成最大影响的那个。如果您勾选了此框,则所有在“语言格式”部分配置的选项都将应用。大括号、空格、换行符,所有这些东西。顺便说一句,如果您不喜欢任何键盘快捷键,可以通过 Visual Studio > 工具 > 选项 > 键盘进行更改。

重命名 (CTRL-R, R)

如果您曾经使用 Visual Studio 重命名类型,您就会知道这有多么烦人!使用 ReSharper 感觉安全得多。它负责在重命名时更改文件名,并更新代码库中对该类型的所有引用。它也是重命名类中的私有变量的快速安全方法,甚至能给出直观的建议。

跳过分析 (CTRL-ALT-SHIFT-8)

ReSharper 的代码分析是一个很棒的工具,如果您正在处理相对较小的文件,但是如果您曾经处理过包含几个庞大文件的代码库(我们都经历过),或者您正在查看一个生成的文件(例如从 WCF/RIA 服务生成的文件),那么在处理这些文件时关闭分析会非常方便,特别是当您的系统打开某些文件时开始变得有些卡顿时。您可以在 Visual Studio 中打开文件时通过快捷键组合来执行此操作。只需查看代码窗口右侧、滚动条旁边的彩色分析摘要方块。当分析开启时,它将是交通信号灯的颜色之一,但一旦您将其关闭,它就会变成灰色。您可以通过 ReSharper 菜单配置跳过多个文件:ReSharper > Options > Code Inspection Settings > Edit Items To Skip。

模板

我发现的最后一个在单元测试时非常有用的功能是 ReSharper 对创建模板的支持。而不是每次都创建一个类并手动添加 SetUp/TearDown 以及测试夹具所需的各种依赖项,您可以让 ReSharper 根据用户定义的模板为您生成一个。在下面的示例中,我们将为 NUnit 设置一个基本的单元测试模板,非常简单。

通过 ReSharper > Live Templates 访问模板资源管理器,然后选择“文件模板”选项卡。在“用户模板”下,单击图标以添加新模板。我们将使其成为一个 c# 模板,因此单击“所有位置”链接并选择“在 C# 项目中(包括 ASP.NET C# 项目)”选项。您应该看到默认文件名更改为 Class.cs。让我们将其重命名为 Test.cs。这只是一个默认名称,但有助于提醒我们正在创建一个单元测试。然后,将下面的代码粘贴到主编辑器窗口中。您需要为该模板定义几个宏,我们将依次介绍。这是代码。

namespace $namespace$
{
  using NUnit.Framework;

  public class $classname$
  {
    #region SetUp/TearDown

    [SetUp]
    public void SetUp()
    {
    }

    [TearDown]
    public void TearDown()
    {
    }

    #endregion

    public void $FirstTest$()
    {
    }
  }
}

美元符号之间的值是我们模板正常工作所需的宏。一旦将代码复制到模板编辑器的左窗格中,您应该会在右窗格中看到您的 3 个宏。您需要将这 3 个宏更改为以下设置:

  • namespace 应使用宏“当前文件的默认命名空间”,且不应可编辑。
  • classname 应使用宏“不带扩展名的当前文件名”,且不应可编辑。
  • FirstTest 应使用宏“常量值” - 设置为您喜欢的任何值。FirstTest 即可。它应可编辑。

保存新模板后,您可以对其进行测试(无双关语)。在解决方案资源管理器中右键单击您的单元测试项目,然后选择“添加” > “从模板新建” > “更多...”。在“用户模板”部分找到您的新单元测试模板。选择它并勾选“添加到快速列表”选项。单击“确定”后,您的单元测试模板将来应出现在“从模板新建”列表中。

这些只是我最常与 ReSharper 一起使用的几个功能。如果您有我遗漏的喜欢的,请随意补充!

查看原始文章

© . All rights reserved.