扩展 Visual Studio 编辑器

Visual Studio 编辑器支持扩展以增强其功能。 示例包括扩展功能的:

  • 在现有语言中插入和修改代码。
  • 自定义某些编辑器功能(如 CodeLens)的行为。

Visual Studio 编辑器通常指编辑任何类型的文本文件(称为文档)的功能。 可以打开单个文件进行编辑。 打开的编辑器窗口称为文本视图。

有关编辑器对象模型的详细信息,请参阅 编辑器扩展性概念

以下部分总结了支持的高级编辑器扩展性方案 VisualStudio.Extensibility 。 其中每个方案都丰富了概念和 API。 另外,更详细的部分包括链接,用于提供 API 的更深入说明以及如何使用它们。

读取文本并观察编辑器中的更改

Visual Studio 编辑器最基本的扩展点是操控文本,包括读取和编辑编辑器中的文本。 这些场景是任何编辑器插件的核心。 例如,若要提供诊断信息(如警告或错误),扩展必须在编辑器中读取代码,然后解释它。 扩展还需要一种方法来检测编辑器中的文本何时发生更改、是否打开了新文件,或已打开的文件是否关闭。

请参阅VisualStudio.Extensibility指南,以了解如何阅读文本并跟踪文本更改。

对编辑器中的文本进行编辑

任何旨在通过自动插入文本(例如自动生成 GUID 和插入 GUID)来提高编辑工作效率的扩展都需要 API 来定义插入的位置和内容。 VisualStudio.Extensibility扩展模型在进程外执行代码并异步执行,这需要在开发文本编辑扩展时遵守特定原则。

要了解如何使用 VisualStudio.Extensibility 来编辑文本,请参阅 在编辑器中更改文本

扩展编辑器功能

扩展还可以集成到编辑器中的许多功能,以提供上下文信息。 以下部分总结了编辑器中可以扩展的不同功能。

文本视图边距

扩展可以为 Visual Studio 编辑器提供新的文本视图边距。 文本视图边距是附加在文本视图四个边之一的矩形 UI 控件。 这些 UI 控件一目了然地提供了更多信息,使开发人员能够在编辑器中工作时保持高效。 Visual Studio 编辑器中的许多最常用的功能使用文本视图边距,例如缩放控件、断点指示器和行号指示器。

有关如何使用扩展自定义文本视图边距的演练,请参阅 使用新的边距扩展 Visual Studio 编辑器

CodeLens

扩展可以向 Visual Studio 编辑器添加新的 CodeLenses。 CodeLens 是一个可视指示器,显示在文本行上方以提供可作的上下文信息。 示例包括对代码元素的引用数、最后一个单元测试运行的结果,或运行或调试单元测试的操作。 一些常见的 CodeLenses 包括代码引用 CodeLens,它提供有关引用特定代码块的代码的所有不同部分的信息。 代码历史记录 CodeLens 提供有关源代码管理中特定代码块如何更改的信息。

关于如何通过扩展提供自定义 CodeLens 的演练,请参阅 使用新的 CodeLens 扩展 Visual Studio 编辑器

标记器

扩展可以为 Visual Studio 编辑器提供新的标记器。 标记器用于将数据与文本范围相关联。 其他 Visual Studio 功能(例如 CodeLens分类)使用此数据。

要了解如何将标记器与扩展一起提供,请参阅 使用新的标记器扩展 Visual Studio 编辑器