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