使用 CodeLens 查找代码更改和其他历史记录

通过 CodeLens,你完全无需离开编辑器即可在专注于工作的同时了解代码发生的情况。 你可以查找代码引用、代码变更、关联的 Bug、Azure DevOps 工作项、代码评审和单元测试。

注意

CodeLens 在 Visual Studio 的 Community 版本中可用,而源代码管理指示器在此版本中不可用。

CodeLens 可以显示代码的各个部分在解决方案中的使用位置和方式。

Screenshot of the CodeLens indicators in the code editor.

若要选择想要查看的指示器或要关闭和打开 CodeLens,请依次转到“工具”>“选项”>“文本编辑器”>“所有语言”>“CodeLens” 。

查找对代码的引用

可以在 C# 或 Visual Basic 代码中查找引用。 操作方法如下。

  1. 在代码编辑器中,选择“引用”指示器或按 Alt+2

    注意

    如果指示器显示 0 个引用,则你的 C# 或 Visual Basic 代码中没有任何引用。 但是,可能在其他项(如 .xaml.aspx 文件)中有引用。

  2. 若要查看引用代码,将鼠标悬停在列表中的引用上方。

  3. 若要打开包含该引用的文件,双击该引用。

代码图

若要查看该代码与其引用之间的关系,创建代码图。 在代码图快捷菜单中,选择“显示所有引用”

查找你的代码中的更改

检查代码的历史记录,了解代码所发生的情况。 或者,在将这些更改合并到你的代码中之前查看它们,这样你可以更好地了解其他分支中的更改可能影响你的代码的方式。

需要:

对于随 Team Foundation 版本控制 (TFVC) 或 Git 一起存储的 C# 或 Visual Basic 代码,可以获取类和方法级别上的 CodeLens 详细信息(码位元素级别指示器)。

对于除 .cs.vb 以外的文件类型,可以在一个位置获取整个文件的 CodeLens 详细信息(文件级指示器)。

代码元素级别指示器

通过码位元素级别指示器,可以查看更改代码的人员以及他们所做的更改。 码位元素级别指示器可用于 C# 和 Visual Basic 代码。

在 Azure DevOps Services 中使用 Team Foundation 版本控制 (TFVC) 时,还可以查看变更历史记录。

默认时间段为最近 12 个月。

要查看所有变更(包括超过一年前的变更)的详细历史记录,请选择“显示所有文件变更”,随即会打开“历史记录”窗口。

在“历史记录”窗口中,可以查看 Git 存储库中的所有文件。 然后,可以选择码位元素级更改指示器以获取更多详细信息。

文件级别指示器

还可以查看整个文件的文件级指示器。

注意

文件级别指示器不可用于 C# 和 Visual Basic 文件。

要获得有关更改的详细信息,请右键单击项目。 根据使用的是 TFVC 还是 Git,可使用一些选项来比较文件的版本、查看详细信息和跟踪变更集、获取文件的所选版本并向进行该更改的作者发送电子邮件。 如果已启用团队资源管理器,则其中一些详细信息会显示在该管理器中;否则,这些详细信息将显示在 Git 变更中。

还可以查看随时间推移更改代码的人员,这有助于在团队的更改中查找规律并评估影响。

查找当前分支中的更改

你的团队可能会有多个分支(例如,一个主分支和一个子开发分支),以降低破坏稳定代码的风险。 按 Alt+6 可了解在主要分支中更改代码的人数和所做更改数。

查找何时对你的代码进行了分支

若要了解何时对代码进行了分支,导航到子分支中的代码。 然后,选择“更改”指示器(或按 Alt+6)。

查找来自其他分支的传入更改

可以查看传入的更改。 并且,你无需离开当前分支来查看变更。

查找何时对更改进行了合并

可以查看何时对更改进行了合并,这样便可确定分支中包括了哪些更改。

将传入更改与本地版本进行比较

要将传入的更改与本地版本进行比较,请双击变更集或按 Shift+F10

分支图标

通过“分支”列中的图标,可了解该分支与你正在使用的分支之间的关系。

图标 更改来源:
CodeLens: Change from current branch icon 当前的分支
CodeLens: Change from parent branch icon 父分支
CodeLens: Change from child branch icon 子分支
CodeLens: Change from peer branch icon 对等分支
CodeLens: Change from branch further away icon 比父、子或对等更进一步的分支
CodeLens: Merge from parent icon 从父分支到子分支的合并
CodeLens: Merge from child branch icon 从子分支到父分支的合并
CodeLens: Merge from unrelated branch icon 来自不相关分支的合并(baseless 合并)

链接的工作项

选择“工作项”指示器或按 Alt+8,查找关联的工作项。

关联的代码评审

选择“评审”指示器,查找关联的代码评审。 若要使用键盘,按住 Alt,然后按“向左键”或“向右键”来导航指示器选项。

关联的 bug

选择“bug”指示器或按 Alt+7,查找关联的 bug。

联系项的所有者

选择“作者”指示器或按 Alt+5,查找项的作者。

也可以打开一个项的快捷菜单来查看联系人选项。 (如果已安装 Teams,则可以使用其他通信选项。)

关联的单元测试

无需打开“测试资源管理器”便可发现针对 C# 或 Visual Basic 代码存在的单元测试。

  1. 转到具有关联的单元测试代码的应用程序代码。

  2. 如果还没有,请生成应用程序以加载 CodeLens 测试指示器。

  3. 按 Alt+3,查看代码的测试。

  4. 如果看到警告图标 warning icon,则表示测试尚未运行,请运行它们。

  5. 若要查看某个测试的定义,请双击 CodeLens 指示器窗口中的测试项,从而在编辑器中打开代码文件。

  6. 若要查看测试结果,请选择测试状态指示器(test failed icontest passed icon),或者按 Alt+1。

  7. 若要查看更改过此测试的人数、更改者或对此测试所做的更改数,查找代码的历史记录和关联的项。

键盘快捷方式

若要使用键盘来选择指示器,按住 Alt 可显示相关的数字键,然后按对应于要选择的指示器的数字。

注意

若要选择“评审”指示器,按住 Alt 的同时,使用向左键和向右键进行导航。

问答

问:如何关闭或打开 CodeLens 或选择要查看的指示器?

答:可以关闭或打开指示器,引用指示器除外。 转到“工具”>“选项”>“文本编辑器”>“所有语言”>“CodeLens” 。

指示器打开后,你也可以从指示器上打开“CodeLens”选项。 另外,可以使用编辑器窗口底部的 V 形图标打开和关闭 CodeLens 文件级指示器。

问:CodeLens 位于何处?

答:CodeLens 出现在方法、类、索引器和属性级别的 C# 和 Visual Basic 代码中。 对于所有其他文件类型,CodeLens 出现在文件级别。

  • 确保 CodeLens 开启。 转到“工具”>“选项”>“文本编辑器”>“所有语言”>“CodeLens” 。

  • 仅当工作项已链接到代码并且你有权打开链接的工作项时,才显示与 Azure DevOps 相关的指示器。 确认具有团队成员权限

  • 当应用程序代码没有单元测试时,单元测试指示器不显示。 测试状态指示器自动显示在测试项目中。 如果知道应用程序代码具有单元测试,但测试指示器未显示,请尝试生成解决方案 (Ctrl+Shift+B)。

提示

CodeLens 在源代码 Visual Studio Community 版本中可用,而源代码管理指示器在此版本中不可用。

问:为什么没有看见提交的工作项详情?

问:可能是因为 CodeLens 无法查找到 Azure Boards 中的工作项。 检查是否连接到具有这些工作项的项目,以及你是否有权限查看这些工作项。 如果提交说明中关于 Azure Boards 中工作项 ID 的信息有误,工作项详细信息可能也不会显示。

问:如何更改 CodeLens 的字体和颜色?

答:转到“工具”>“选项”>“环境”>“字体和颜色”

CodeLens - Change font and color settings

使用键盘:

  1. 按 Alt+T+O 可打开“选项”对话框。

  2. 按向上键 或向下键 转到 “环境” 节点,然后按向左键 展开该节点。

  3. 按向下键 转到 “字体和颜色”

  4. 按 Tab 转到“显示其设置”列表,然后按向下键选择“CodeLens” 。

问:我是否能移动 CodeLens 提醒显示?

答:可以,选择 Dock icon,将 CodeLens 作为窗口停靠。

问:如何刷新指示器?

答: 这取决于指示器:

  • 引用:代码更改时,此指示器会自动更新。 如果“引用”指示器作为单独的窗口停靠,请选择“刷新”来刷新该指示器。

  • 团队:从右键单击菜单中选择“刷新 CodeLens 团队指示器”以刷新这些指示器。

  • 测试查找代码的单元测试,刷新“测试”指示器。

问:什么是“本地版本”?

答:“本地版本”箭头指向文件的本地版本中的最新变更集。 当服务器具有最新的变更集时,它们显示在 “本地版本” 箭头的上方或下方,具体取决于排列变更集的顺序。

问:首次打开解决方案时,文件中不再显示 CodeLens 测试指示器。 如何加载它们?

答:重新生成项目,获取要加载到文件中的 CodeLens 测试指示器。 为了提高性能,Visual Studio 在加载代码文件时不再提取测试指示器的源信息。 测试指示器在生成后或在导航到测试时(通过在“测试资源管理器”中双击该测试)加载

通过 CodeLens,你无需离开编辑器即可在专注于工作的同时了解代码发生的情况。 可以查找代码引用、代码更改、关联的 Bug、工作项、代码评审和单元测试。

注意

CodeLens 在源代码 Visual Studio Community 版本中可用,而源代码管理指示器在此版本中不可用。

了解各个部分的代码在解决方案中的使用位置和使用方式:

CodeLens indicators in the code editor

在不离开编辑器的情况下就对代码进行的更改联系你的团队:

CodeLens - Contact your team

若要选择想要查看的指示器或要关闭和打开 CodeLens,请依次转到“工具”>“选项”>“文本编辑器”>“所有语言”>“CodeLens” 。

在 Visual Studio 2019 中查找对代码的引用

可以在 C# 或 Visual Basic 代码中查找引用。

  1. 选择“引用”指示器或按 Alt+2

    CodeLens references

    注意

    如果指示器显示 0 个引用,则没有来自 C# 或 Visual Basic 代码的引用。 但可能存在其他项(如 .xaml 和 .aspx 文件)中的引用

  2. 若要查看引用代码,将鼠标悬停在列表中的引用上方。

    CodeLens - Peek reference

  3. 若要打开包含该引用的文件,双击该引用。

代码图

若要查看该代码与其引用之间的关系,创建代码图。 在代码图快捷菜单中,选择“显示所有引用”

CodeLens - References on code map

在 Visual Studio 2019 中查找代码中的变更

检查代码的历史记录,了解代码所发生的情况。 或者,在将这些更改合并到你的代码中之前查看它们,这样你可以更好地了解其他分支中的更改可能影响你的代码的方式。

需要:

对于随 Team Foundation 版本控制 (TFVC) 或 Git 一起存储的 C# 或 Visual Basic 代码,可以获取类和方法级别上的 CodeLens 详细信息(码位元素级别指示器)。

Code element-level indicators

对于除 .cs 或 .vb 以外的文件类型,在窗口底部的某个位置获取整个文件的 CodeLens 详细信息(文件级指示器)。

File-level CodeLens indicators

代码元素级别指示器

通过码位元素级别指示器,可以查看更改代码的人员以及他们所做的更改。 码位元素级别指示器可用于 C# 和 Visual Basic 代码。

下面是使用 Team Foundation 版本控制 (TFVC) 或 Azure DevOps Services 时显示的内容:

CodeLens: Get change history for your code in TFVC

默认时间段为最近 12 个月。

要查看所有变更(包括超过一年前的变更)的详细历史记录,请选择“显示所有文件变更”:

Show all code changes

此时将打开“历史记录”窗口:

History window for all code changes

当文件位于 Git 存储库中并选择码位元素级更改指示器时,下面是将显示的内容:

CodeLens: Get change history for your code in Git

文件级别指示器

在窗口底部中的文件级别指示器中查找对整个文件进行的更改:

CodeLens: Get code file details

注意

文件级别指示器不可用于 C# 和 Visual Basic 文件。

若要获得有关更改的详细信息,请右键单击该项。 根据使用的是 TFVC 还是 Git,可使用一些选项来比较文件的版本、查看详细信息和跟踪变更集、获取文件的所选版本并向进行该更改的作者发送电子邮件。 在 Visual Studio 2019 版本 16.7 及更低版本中,其中一些详细信息显示在团队资源管理器中。 在 Visual Studio 2019 版本 16.8 及更高版本中,这些详细信息会显示在“Git 更改”中。

还可以查看随时间推移更改代码的人员,这有助于在团队的更改中查找规律并评估影响。

CodeLens: See code changes history as a graph

查找当前分支中的更改

你的团队可能会有多个分支(例如,一个主分支和一个子开发分支),以降低破坏稳定代码的风险。

CodeLens: Find changes in your current branch

按 Alt+6 可了解在主要分支中更改代码的人数和所做更改数:

CodeLens: Find how many changes in your branch

查找何时对你的代码进行了分支

若要了解何时对代码进行了分支,导航到子分支中的代码。 然后,选择“更改”指示器(或按 Alt+6):

CodeLens: Find when your code was branched

查找来自其他分支的传入更改

CodeLens: Find code changes in other branches

可以查看传入的更改。 在以下屏幕截图中,“开发”分支中进行了 bug 修复:

CodeLens: Change checked into another branch

可以在不离开当前分支(“主分支”)的情况下查看该更改:

CodeLens: See incoming change from another branch

查找何时对更改进行了合并

可以查看何时对更改进行了合并,这样便可确定分支中包括了哪些更改:

CodeLens - Find when changes got merged

例如,主分支中的代码现在具有来自“开发”分支的 Bug 修复:

CodeLens - Merged changes between branches

将传入更改与本地版本进行比较

按 Shift+F10 或双击变更集,将传入更改与本地版本进行比较。

CodeLens: Compare incoming change with local

分支图标

通过“分支”列中的图标,可了解该分支与你正在使用的分支之间的关系。

图标 更改来源:
CodeLens: Change from current branch icon 当前的分支
CodeLens: Change from parent branch icon 父分支
CodeLens: Change from child branch icon 子分支
CodeLens: Change from peer branch icon 对等分支
CodeLens: Change from branch further away icon 比父、子或对等更进一步的分支
CodeLens: Merge from parent icon 从父分支到子分支的合并
CodeLens: Merge from child branch icon 从子分支到父分支的合并
CodeLens: Merge from unrelated branch icon 来自不相关分支的合并(baseless 合并)

Visual Studio 2019 中关联的工作项

选择“工作项”指示器或按 Alt+8,查找关联的工作项。

CodeLens - Find work items for specific code

Visual Studio 2019 中关联的代码评审

选择“评审”指示器,查找关联的代码评审。 若要使用键盘,按住 Alt,然后按“向左键”或“向右键”来导航指示器选项。

CodeLens - View code review requests

Visual Studio 2019 中关联的 bug

选择“bug”指示器或按 Alt+7,查找关联的 bug。

CodeLens - Find bugs linked to changesets

联系 Visual Studio 2019 中某个项的所有者

选择“作者”指示器或按 Alt+5,查找项的作者。

Contact the owner of an item

打开一个项的快捷菜单来查看联系人选项。 如果你安装了 Teams,则可能会看到与以下屏幕截图中类似的选项:

Contact options for an item

Visual Studio 2019 中关联的单元测试

无需打开“测试资源管理器”便可发现针对 C# 或 Visual Basic 代码存在的单元测试。

  1. 转到具有关联的单元测试代码的应用程序代码。

  2. 如果还没有,请生成应用程序以加载 CodeLens 测试指示器。

  3. 按 Alt+3,查看代码的测试。

    CodeLens - Choose test status in code editor

  4. 如果看到警告图标 warning icon,则表示测试尚未运行,请运行它们。

    CodeLens - View unit tests not run yet

  5. 若要查看某个测试的定义,请双击 CodeLens 指示器窗口中的测试项,从而在编辑器中打开代码文件。

    CodeLens - Go to unit test definition

  6. 若要查看测试结果,请选择测试状态指示器(test failed icontest passed icon),或者按 Alt+1。

    CodeLens - See unit test result

  7. 若要查看更改过此测试的人数、更改者或对此测试所做的更改数,查找代码的历史记录和关联的项。

Visual Studio 2019 中的键盘快捷方式

若要使用键盘来选择指示器,按住 Alt 可显示相关的数字键,然后按对应于要选择的指示器的数字。

Keyboard access numbers

注意

若要选择“评审”指示器,按住 Alt 的同时,使用向左键和向右键进行导航。

Visual Studio 2019 中的 CodeLens 问答

问:如何关闭或打开 CodeLens 或选择要查看的指示器?

答:可以关闭或打开指示器,引用指示器除外。 转到“工具”>“选项”>“文本编辑器”>“所有语言”>“CodeLens” 。

指示器打开后,你也可以从指示器上打开“CodeLens”选项。

CodeLens - Turn indicators off or on

使用编辑器窗口底部的 V 形图标打开和关闭 CodeLens 文件级指示器。

Turn file-level indicators on and off

问:CodeLens 位于何处?

答:CodeLens 出现在方法、类、索引器和属性级别的 C# 和 Visual Basic 代码中。 对于所有其他文件类型,CodeLens 出现在文件级别。

  • 确保 CodeLens 开启。 转到“工具”>“选项”>“文本编辑器”>“所有语言”>“CodeLens” 。

  • 仅当工作项已链接到代码并且你有权打开链接的工作项时,才显示与 DevOps 相关的指示器。 确认具有团队成员权限

  • 当应用程序代码没有单元测试时,单元测试指示器不显示。 测试状态指示器自动显示在测试项目中。 如果知道应用程序代码具有单元测试,但测试指示器未显示,请尝试生成解决方案 (Ctrl+Shift+B)。

提示

CodeLens 在源代码 Visual Studio Community 版本中可用,而源代码管理指示器在此版本中不可用。

问:为什么没有看见提交的工作项详情?

问:可能是因为 CodeLens 无法查找到 Azure Boards 中的工作项。 检查是否连接到具有这些工作项的项目,以及你是否有权限查看这些工作项。 如果提交说明中关于 Azure Boards 中工作项 ID 的信息有误,工作项详细信息可能也不会显示。

问:如何更改 CodeLens 的字体和颜色?

答:转到“工具”>“选项”>“环境”>“字体和颜色”

CodeLens - Change font and color settings

使用键盘:

  1. 按 Alt+T+O 可打开“选项”对话框。

  2. 按向上键 或向下键 转到 “环境” 节点,然后按向左键 展开该节点。

  3. 按向下键 转到 “字体和颜色”

  4. 按 Tab 转到“显示其设置”列表,然后按向下键选择“CodeLens” 。

问:我是否能移动 CodeLens 提醒显示?

答:可以,选择 Dock icon,将 CodeLens 作为窗口停靠。

Dock button in CodeLens indicator window

Docked CodeLens References window

问:如何刷新指示器?

答: 这取决于指示器:

  • 引用:代码更改时,此指示器会自动更新。 如果“引用”指示器作为单独的窗口停靠,请选择“刷新”来刷新该指示器:

    Refresh button in CodeLens References

  • 团队:从右键单击菜单中选择“刷新 CodeLens 团队指示器”,刷新这些指示器

    Refresh CodeLens Team Indicators menu item

  • 测试查找代码的单元测试,刷新“测试”指示器。

问:什么是“本地版本”?

答:“本地版本”箭头指向文件的本地版本中的最新变更集。 当服务器具有最新的变更集时,它们显示在 “本地版本” 箭头的上方或下方,具体取决于排列变更集的顺序。

问:首次打开解决方案时,文件中不再显示 CodeLens 测试指示器。 如何加载它们?

答:重新生成项目,获取要加载到文件中的 CodeLens 测试指示器。 为了提高性能,Visual Studio 在加载代码文件时不再提取测试指示器的源信息。 测试指示器在生成后或在导航到测试时(通过在“测试资源管理器”中双击该测试)加载