重新设计的可更大范围搜索的查找所有引用功能

[原文发表地址] Find All References re-designed for larger searches

[原文发表时间]11/16/2016 Augustin Popa

Visual Studio 2017 包含了很多关于核心开发体验的重要更改。我们的目标是最大化地提高你们在开发应用时的效率, 这就需要我们经常改进我们的功能。对于Visual Studio 2017,我们希望改进代码导航,特别是对于大型的解决方案,它会得出很多搜寻结果。 而我们最关心的就是查找所有引用这项功能, 另外一个就是Navigate To, 这个将会在另外一篇单独的博客中进行说明。

查找所有引用目的是为你们提供一个有效的方式查找你们的代码中某一个特定symbol的所有引用。 在Visual Studio 2017中, 你们可以对结果采取筛选,排序,整合分组等多种不同的处理方式。结果会递进排列显示, 同时也可以被划分为可读和可写 的状态来帮助你获取更多你们所要查找的信息。

结果分组

一个新的下拉列表可以让你们对结果进行分组,你们可以按照下面的几种类别进行分组:

  • 项目,然后定义
  • 仅定义;
  • 定义,然后项目
  • 定义,然后路径
  • 定义,项目,然后路径

结果筛选

大部分的列项都可以进行结果筛选。 只需要简单的将鼠标悬停在某一列,点击筛选图标,就会弹出一个窗口。最为突出的是,你们可以从第一列来过滤结果,隐藏一些信息,比如字符串和注释的引用(或者选择关闭显示它们, 如果你们更倾向于这种的话)。

已确认,未确认,未处理结果的不同之处,请参照下面:

  • 已确认的结果 - 在代码中找到symbol 的真正代码引用。例如,搜索一个叫Size的成员方法,返回所有引用Size的结果中,已确认的结果就是在类范围内定义的Size;
  • 未确认的结果-这个筛选是默认关闭的,它搜索出来的结果是包含和所搜symbol 一样名字的,但是在代码中不是真正Symbol的引用的那些结果。比如, 如果你有两个类,每一个类都定义了一个叫Size 的成员方法,你对Class1 中的Size进行引用查找, 那么所有Class 2 的Size 引用结果将会显示成未确认的结果。 因为大部分情况下你可能不会在意这些结果,所以他们是被隐藏的(除非你开启这项过滤)。
  • 未处理的结果 - 对于非常大型的代码,查找所有引用是需要一些时间去执行的,所以我们对于那些还没处理的结果分为此处未处理的结果。未处理的结果和所搜的symbol名字一致,但我们的智能感应引擎还不能是已确认的或未确认的真正代码引用。 如果你想更快的在列表中看到结果而不介意有时得到的不实际的引用结果,你可以开启此筛选器。

结果排序

你们可以在某一个特定的列对结果进行排序,只需简单点击那一列即可。 你们可以通过再次点击那一列交换升序和降序的顺序。

读/写状态

我们增加了新的一列(在UI的最右侧)将结果分类为读,写,或者其他(在那些可适用的地方),你们可以通过这个新的筛选条件来限定结果是你所希望的其中一类。

我们希望对查找所有引用的改变,能够帮助你进行复杂搜索的管理。 如果你对Visual Studio 2017其他效率相关的提升感兴趣, 可以查看下面的内容:

向我们提交你的反馈

你们的反馈有助于我们的成长。 使用Visual Studio IDE中的报告问题的功能我们分享你的反馈,在开发者社区门户上查看问题的结果。如果你没有使用Visual Studio IDE, 可以通过Connect Form for reporting Issues 来提交你们的问题。 关于产品改进的建议可以通过用户之声网站。

下载Visual Studio 2017 RC 来亲自感受下这个功能吧!