扩展编辑器和语言服务

可以将语言服务功能(如 IntelliSense)添加到自己的编辑器中,并扩展 Visual Studio 代码编辑器的大部分功能。 有关可以扩展的内容的完整列表,请参阅 语言服务和编辑器扩展点

使用托管扩展性框架(MEF)扩展大多数编辑器功能。 例如,如果要扩展的编辑器功能是语法着色,则可以编写一个 MEF 组件部件,该组件部件 定义要为其设置不同着色的分类以及处理方式。 编辑器还支持同一功能的多个扩展。

编辑器呈现层基于 Windows 演示文稿框架(WPF)。 WPF 提供用于灵活文本格式的图形库,并提供图形和动画等可视化效果。

Visual Studio SDK 提供称为 填充码 的适配器,以支持为早期版本编写的 VSPackage。 但是,如果你有现有的 VSPackage,我们建议将其更新为新技术,以获得更好的性能和可靠性。

Title 说明
语言服务和编辑器扩展入门 介绍如何创建编辑器的扩展。
在编辑器中 描述编辑器的一般结构,并列出其一些功能。
编辑器中的托管扩展性框架 介绍如何将托管扩展性框架(MEF)与编辑器配合使用。
语言服务和编辑器扩展点 列出编辑器的扩展点。 扩展点表示可以扩展的编辑器功能。
演练:创建视图装饰、命令和设置(列指南) 演练并解释如何构建视图装饰,该装饰绘制列参考线,以帮助将代码保持在特定的显示宽度。 此外,还显示读取和写入设置,以及声明和实现可从命令窗口调用的命令。
编辑器导入 列出扩展可以导入的服务。
将旧代码适应编辑器 介绍调整旧代码(Visual Studio 2010 之前的)以扩展编辑器的不同方法。
迁移旧版语言服务 介绍如何迁移基于 VSPackage 的语言服务。
演练:将内容类型链接到文件扩展名 演示如何将内容类型链接到文件扩展名。
演练:创建边距字形 演示如何向边距添加图标。
演练:突出显示文本 演示如何使用 标记 突出显示文本。
演练:添加大纲 演示如何为特定类型的大括号添加大纲。
演练:显示匹配大括号 演示如何突出显示匹配大括号。
演练:显示 QuickInfo 工具提示 演示如何显示描述代码元素的 QuickInfo 弹出窗口,例如属性、方法和事件。
演练:显示签名帮助 演示如何显示弹出窗口,这些弹出窗口提供有关签名中参数的数量和类型的信息。
演练:显示语句完成 演示如何实现语句完成。
演练:实现代码片段 演示如何实现代码片段扩展。
演练:显示灯泡建议 演示如何显示用于代码建议的灯泡。
演练:将 shell 命令与编辑器扩展配合使用 演示如何将 VSPackage 中的菜单命令与 MEF 组件相关联。
演练:将快捷键与编辑器扩展配合使用 演示如何将 VSPackage 中的菜单快捷方式与 MEF 组件相关联。
Managed Extensibility Framework (MEF) 提供有关托管扩展性框架(MEF)的信息。
Windows Presentation Foundation 提供有关 Windows Presentation Foundation(WPF)的信息。

参考

Visual Studio 编辑器包含以下命名空间。

Microsoft.VisualStudio.Language.Intellisense

Microsoft.VisualStudio.Language.StandardClassification

Microsoft.VisualStudio.Editor

Microsoft.VisualStudio.Text

Microsoft.VisualStudio.Text.Adornments

Microsoft.VisualStudio.Text.Classification

Microsoft.VisualStudio.Text.Differencing

Microsoft.VisualStudio.Text.Document

Microsoft.VisualStudio.Text.Editor

Microsoft.VisualStudio.Text.Editor.OptionsExtensionMethods

Microsoft.VisualStudio.Text.Formatting

Microsoft.VisualStudio.Text.IncrementalSearch

Microsoft.VisualStudio.Text.Operations

Microsoft.VisualStudio.Text.Outlining

Microsoft.VisualStudio.Text.Projection

Microsoft.VisualStudio.Text.Tagging

Microsoft.VisualStudio.Utilities