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

Visual Studio CodeLens 可帮助你专注于你的工作,同时了解代码发生的情况 - 所有这些操作都无需离开交互式开发环境(IDE)代码编辑器。 可以找到对代码片段、代码更改、关联的错误、Azure DevOps 工作项、代码评审和单元测试的引用。

备注

CodeLens 在 Visual Studio 社区版中可用,但此版本中不提供 源代码管理 指示器。

CodeLens 可向你显示解决方案中代码的各个部分的位置和用法:

Visual Studio 代码编辑器中 CodeLens 指示器的屏幕截图。

查看用户代码更改的详细信息,然后通过右键单击 选项发送电子邮件至 <用户>,从而无需离开代码编辑器即可与用户联系:

显示如何在 CodeLens for Visual Studio 中查看团队成员所做的更改的详细信息的屏幕截图。

若要选择要查看的指示器,或打开 CodeLens,请转到 工具>选项>文本编辑器>所有语言>CodeLens

Visual Studio 2022 中的键盘快捷方式

可通过在 Visual Studio 代码编辑器窗口中使用键盘快捷方式来获取以下部分中介绍的许多操作。

若要使用键盘选择指示器,请选择并按住 alt 键以显示相关数字键,然后选择与所需指示器对应的键盘上的数字:

显示 Visual Studio 中的 CodeLens 键盘访问号码的屏幕截图。

备注

若要选择“评审”指示器,请在选择 Alt 的同时,使用向左键和向右键进行浏览

查找对代码的引用

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

  1. 在代码编辑器中,选择 引用 指示器或使用 Alt+2 键盘快捷方式:

    显示如何在 Visual Studio 中选择 CodeLens 引用选项的屏幕截图。

    备注

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

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

    屏幕截图显示了如何通过使用 Visual Studio 的“CodeLens - 引用预览”功能查看带有引用的文件。

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

创建代码图

若要查看代码与其引用之间的关系,可以 创建代码图。 在“代码图”工具栏中,展开“显示相关”下拉菜单,然后选择“查找所有引用”

屏幕截图,显示如何在 Visual Studio 中使用 CodeLens 创建对特定代码的所有引用的映射。

在代码中查找更改

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

你需要:

对于使用 TFVC 或 Git 存储的 C# (.cs) 或 Visual Basic(.vb) 代码,CodeLens 详细信息在文件中的类和方法级别(代码元素级 指示器)中可见:

显示 Visual Studio CodeLens 中团队贡献的代码元素级指示器的屏幕截图。

对于除 .cs.vb以外的文件类型,显示文件级别 Codelens 指示器 选项允许查看整个文件的 CodeLens 详细信息。 文件级 指示器显示在代码编辑器中的文件底部:

显示 Visual Studio CodeLens 中团队贡献的文件级指示器的屏幕截图。

代码元素级别指示器

代码元素级指示器可让你查看谁更改了代码,以及更改了哪些更改。 代码元素级指示器可用于 C# 和 Visual Basic 代码。

还可以在使用 TFVC 或 Azure DevOps Services 时查看更改历史记录:

屏幕截图,显示 CodeLens for Visual Studio 中代码的更改历史记录数据。

默认时间段是过去 12 个月(一年)。

若要查看所有更改的详细历史记录(包括一年多前的更改),请选择 显示所有文件更改,这将打开 历史记录 窗口。 在“历史记录” 窗口中,可以查看 Git 存储库中的所有文件,并选择代码元素级更改指示器以获取更多详细信息:

显示 Visual Studio GitHub 存储库中代码的 CodeLens 更改历史记录的屏幕截图。

文件级别指示器

您还可以在代码编辑器窗口底部,使用文件级指示器来查找整个文件的更改。

备注

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

若要获取有关更改的更多详细信息,请右键单击该项。 根据你使用的是 TFVC 还是 Git,有一些选项可用于比较文件版本、查看详细信息和跟踪更改集、获取所选版本的文件,以及向该更改的作者发送电子邮件。 启用后,团队资源管理器 中会显示一些详细信息;否则,详细信息将显示在 Git 更改 窗格中。 还可以在代码编辑器底部的水平滚动条上看到详细信息。

指示器显示随时间推移更改了代码的人员,这有助于你在团队的更改中找到模式并评估其影响:

屏幕截图,显示 Visual Studio CodeLens 中团队贡献的代码元素级指示器作为图形。

从 Visual Studio 2022 版本 17.12 预览版 2 开始,可以通过使用 工具 > 选项 > 文本编辑器 > 高级>"显示文件级别 CodeLens 指示器" 选项,在代码编辑器的水平滚动条上显示或隐藏文件级别指示器。 此选项可更新在底部编辑器滚动条(如 XAML、HTML 和 CSS)中实现文件级 CodeLens 控件的文件类型的可见性。 此选项不会影响包含内联 CodeLens(C# 和 VB)的文件。

在当前分支中查找更改

你的团队可能有多个分支,例如主分支和子开发分支,以减少中断稳定代码的风险。

关系图描述了当前分支和具有 CodeLens 的子分支的更改。

您可以通过选择 Alt+0 键盘快捷键,了解有多少贡献者修改了您的代码,以及主分支中的更改数量。

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

若要了解何时对代码进行了分支,请浏览到子分支中的代码。 然后选择 更改 指示器(或选择 Alt+0):

屏幕截图显示了如何在 Visual Studio 中使用 CodeLens 发现何时对代码进行了分支。

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

关系图,演示如何在 Visual Studio 中使用 CodeLens 在其他分支中查找代码更改。

可以查看传入的更改,无需离开当前分支即可查看更改。

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

您可以查看更改何时被合并,从而确定您的分支中包含哪些更改。

关系图显示了如何在 Visual Studio 中使用 CodeLens 发现何时合并了更改。

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

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

分支图标

Branch 列中的图标指示该分支与你当前正在工作的分支之间的关系。

图标 更改来源
当前分支
父分支
子分支
对等分支
比父、子或对等更进一步的分支
从父分支到子分支的合并
从子分支到父分支的合并
来自不相关的分支的合并(无基合并)

链接的工作项

通过选择 工作项 指示器或使用 alt + 键盘快捷方式查找链接的工作项。

关联的代码评审

选择“评审”指示器,查找关联的代码评审。 若要使用键盘,请按住 Alt 键,然后选择 左箭头键右箭头键 浏览指示器选项。

关联的 bug

通过选择 错误 指示器或使用 Alt + 7 键盘快捷方式来查找关联的错误。

联系项目的所有者

通过选择 作者 指示器 或使用 alt + 5 键盘快捷方式来查找项的作者。

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

关联的单元测试

可以发现 C# 或 Visual Basic 代码存在的单元测试,而无需打开 测试资源管理器

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

  2. 根据需要生成应用程序以加载 CodeLens 测试指示器。

  3. 使用 Alt3 键盘快捷方式查看代码的测试 +

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

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

  6. 若要查看测试结果,请选择测试状态 失败通过的 指示器()或使用 alt + 键盘快捷方式

  7. 若要查看有多少贡献者更改了此测试、是谁更改了此测试,或对此测试进行了多少次更改,请查看代码的历史记录 和链接的项目。

问与答

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

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

启用指示器后,还可以从指示器中打开 CodeLens 选项。 还可以使用编辑器窗口底部的 V 形图标打开和关闭 CodeLens 文件级指示器。

问:CodeLens 在哪里?

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

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

  • 仅当工作项与代码链接,且您有权限打开这些链接的工作项时,Azure DevOps 相关的指示器才会出现。 确认您拥有团队成员权限

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

提示

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

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

A: 这种情况可能发生,因为 CodeLens 在 Azure Boards 中找不到工作项。 检查是否已连接到具有这些工作项的项目,以及你是否有权查看这些工作项。 如果提交说明在 Azure Boards 中存在有关工作项 ID 的错误信息,则工作项详细信息也可能不显示。

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

A: 转到 工具>选项>环境>字体和颜色

显示如何在 Visual Studio 中更改 CodeLens 的字体和颜色设置的屏幕截图。

使用键盘的方法:

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

  2. 选择 上箭头下箭头 转到 环境 节点,然后选择 左箭头 展开节点。

  3. 选择向下箭头转到“字体和颜色”

  4. 选择 选项卡 转到 列表的 显示设置,然后选择 向下键 以选择 CodeLens

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

答:可以,选择“停靠”图标 ,将 CodeLens 作为窗口停靠

问:如何刷新指示器?

A: 刷新过程因指示器而异:

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

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

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

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

答:“本地版本”箭头指向文件的本地版本中的最新变更集。 当服务器具有较新的更改集时,它们将显示在 本地版本 箭头之前或之后,具体取决于用于对更改集进行排序的顺序。

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

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