可以使用 Visual Studio SDK 中包含的项模板来创建基本编辑器扩展,以便向编辑器添加分类器、装饰和边距。 编辑器项模板适用于 Visual C# 或 Visual Basic VSIX 项目。
先决条件
- 在安装了Visual Studio 扩展开发工作负载的Visual Studio。
创建分类器扩展
编辑器分类器项模板创建编辑器分类器,该分类器在任何文本文件中为相应的文本(在本例中为所有内容)着色。
使用 VSIX 项目 模板创建新项目。 将其命名为
TestClassifier。在 解决方案资源管理器中,右键单击项目节点,然后选择“ 添加新>项”。 如果出现压缩窗口,请单击“ 显示所有模板”。 转到 Visual C# 扩展性 节点并选择 编辑器分类器。 保留默认文件名(EditorClassifier1.cs)。
有四个代码文件,如下所示:
EditorClassifier1.cs 包含类
EditorClassifier1。EditorClassifier1ClassificationDefinition.cs 包含类
EditorClassifier1ClassificationDefinition。EditorClassifier1Format.cs 包含类
EditorClassifier1Format。EditorClassifier1Provider.cs 包含类
EditorClassifier1Provider。
生成项目并开始调试。 此时会显示 Visual Studio 的实验实例。
如果打开文本文件,则所有文本都在紫色背景上加下划线。
创建一个与文本相关的装饰插件
编辑器文本装饰模板使用具有红色轮廓和蓝色背景的框来修饰文本字符“a”的所有实例,从而创建文本相对装饰。 它是相对于文本的,因为该框始终覆盖“a”字符,即使这些字符被移动或重新格式化也是如此。
使用 VSIX 项目 模板创建新项目。 将其命名为
TestAdornment。在 解决方案资源管理器中,右键单击项目节点,然后选择“ 添加新>项”。 转到 Visual C# 扩展性 节点并选择 “编辑器文本装饰”。 保留默认文件名(TextAdornment1.cs/vb)。
有两个代码文件,如下所示:
TextAdornment1.cs 包含类
TextAdornment1。TextAdornment1TextViewCreationListener.cs 包含类
TextAdornment1TextViewCreationListener。
生成项目并开始调试。 实验实例随即出现。 如果打开文本文件,文本中的所有“a”字符在蓝色背景上用红色描边。
创建视区相对装饰扩展
编辑器视区装饰模板创建一个相对于视区的装饰对象,向视区的右上角添加一个带有红色轮廓的紫色框。
注释
视区是当前显示的文本视图的区域。
使用编辑器视区装饰模板创建视区装饰扩展
使用 VSIX 项目 模板创建新项目。 将其命名为
ViewportAdornment。在 解决方案资源管理器中,右键单击项目节点,然后选择“ 添加新>项”。 转到 Visual C# 扩展性 节点,然后选择 编辑器视区装饰。 保留默认文件名(ViewportAdornment1.cs/vb)。
有两个代码文件,如下所示:
ViewportAdornment1.cs 包含类
ViewportAdornment1。ViewportAdornment1TextViewCreationListener.cs 包含
ViewportAdornment1TextViewCreationListener类
生成项目并开始调试。 实验实例随即出现。 如果创建新的文本文件,则会在视区右上角显示具有红色轮廓的紫罗兰框。
创建边距扩展
编辑器边距模板将创建一个绿色边距,该边距与水平滚动条下方的单词 *Hello world! 一起显示。
使用编辑器边距模板来创建边距扩展
使用 VSIX 项目 模板创建新项目。 将其命名为
MarginExtension。在 解决方案资源管理器中,右键单击项目节点,然后选择“ 添加新>项”。 转到 Visual C# 扩展性 节点并选择 “编辑器边距”。 保留默认文件名(EditorMargin1.cs/vb)。
有两个代码文件,如下所示:
EditorMargin1.cs 包含类
EditorMargin1。EditorMargin1Factory.cs 包含类
EditorMargin1Factory。
生成此项目并开始调试。 实验实例随即出现。 如果打开文本文件,则水平滚动条下方会显示一个带有 Hello EditorMargin1 字的绿色边距。