使用创建用于编辑的模板扩展

可以使用在 Visual Studio 2010 SDK 包括创建基本编辑扩展添加分类器、修饰和边距编辑器的模板。

必备组件

若要使用编辑器扩展模板,您必须安装 Visual Studio 2010 SDK。

备注

有关 Visual Studio SDK 的更多信息,请参见 扩展 Visual Studio 概述。若要查找有关中所列如何下载 Visual Studio SDK,请 Visual Studio Extensibility Developer Center 参见 MSDN 网站上。

创建分类器扩展

编辑分类器模板创建为适当的文本的编辑分类器 (在这种情况下,那么) 在所有文本文件。

使用编辑器分类器模板,创建分类器扩展

  1. 文件 菜单上,指向 然后单击 新项目。 在 新项目 对话框中,展开 Visual C#Visual Basic 然后单击 扩展性。 在 模板 窗格中,选择 编辑分类器。 在 名称 框中,键入 TestClassifier。 单击**“确定”**。

    打开 TestClassifier 项目。

  2. 打开 source.extension.vsixmanifest 文件并编辑该文件如下所示:

    • 产品名称:TestClassifier

    • 作者:Fabrikam

    • 版本:1.0

    • 声明:这是测试分类器扩展。

    不要更改 ID. 它自动生成。

  3. 内容 头此项目 (项目模板目录、项目模板目录、模板向导、 VSPackage、 MEF 组件或自定义扩展类型) 指定内容。 一个项目可以包含一个或多个目录,例如, VSPackage 和 MEF 组件。 此扩展是 MEF 组件,和内容,并在 TestClassifier 定义。

  4. 有三个代码文件,如下所示:

    • TestClassifierType 包含 OrdinaryClassificationType 类。

    • TestClassifierFormat 包含 OrdinaryFormat 类。

    • TestClassifier 包含 OrdinaryClassifier 类和 OrdinaryClassifierProvider 类。

  5. OrdinaryClassificationType 类导出 ClassificationTypeDefinition,并定义要设置格式的文本 (在此情况下,所有文本)。 此类可以处理 NameAttribute的导出,用于标识此分类器。 有关类的更多信息,请参见中的 “扩展的分类类型和类别格式设置” 编辑扩展点的一部分。

  6. OrdinaryFormat 类从 ClassificationFormatDefinition继承,并定义格式将生成,在本例中,为 BlueViolet 字体颜色和 Underline的视觉效果。 必须导出该类作为 EditorFormatDefinition 类型。 可以指定格式是否对用户可见使用 UserVisibleAttribute,因此,您可以指定格式应用于该文本的顺序使用 OrderAttribute,。

  7. OrdinaryClassifier 类是通过使用 “普通”分类器的 GetClassificationSpans 方法 (在此情况下,所有文本),标识文本将类别。

  8. OrdinaryClassifierProvider 类从 IClassifierProvider继承,并执行 GetClassifier 方法,实例化分类器。 此类可以处理 ContentTypeAttribute的导出,指定目录 (文本,代码或因此) 此分类器适用。 它还使用 TextViewRoleAttribute,指定文本视图,可以是任何一个 PredefinedTextViewRoles的值。

  9. 在生成此解决方案时,复制的程序集清单和在的实验目录中。

  10. 当您运行在调试器中查看此项目, Visual Studio 的第二个实例进行实例化。 如果您打开一个文本文件,所有文本显示为带有下划线紫罗兰色背景。

创建一个文本修饰相对于扩展

编辑文本修饰模板创建装饰性文本字符的所有实例使用框中键入 “具有一个红色边框和蓝色背景的文本的修饰。 它是文本相对的,因为框中始终复盖率 " a " 字符,因此,即使它们被移动或重新设置格式。

若要创建文本修饰扩展使用编辑的 text 修饰模板

  1. 文件 菜单上,指向 然后单击 新项目。 在 新项目 对话框中,展开 Visual C#Visual Basic 然后单击 扩展性。 在 模板 窗格中,选择 编辑文本修饰。 在 名称 框中,键入 TestTextAdornment。 单击**“确定”**。

    打开 TestTextAdornment 项目。

  2. 打开 source.extension.vsixmanifest 文件并编辑该文件如下所示:

    • 产品名称:TestTextAdornment

    • 作者:Fabrikam

    • 版本:1.0

    • 声明:这是测试文本修饰相对于扩展。

    不要更改 ID. 它自动生成。

  3. 内容 头此项目指定内容。 此扩展是 MEF 组件,和内容,并在 TestTextAdornment 定义。

  4. 具有两个代码文件,如下所示:

    • TestTextAdornment 包含 ScarletCharacter 类。

    • TestTextAdornmentFactory 包含 EditorAdornmentFactory 类。

  5. ScarletCharacter 类通过查找字符的 (UI)所有匹配项 IWpfTextView 的 “a " 添加 ScarletCharacter 修饰提供修饰的用户界面功能在其构造函数并处理的 LayoutChanged 事件。

  6. EditorAdornmentFactory 类从 IWpfTextViewCreationListener 继承并通过实例化修饰执行 TextViewCreated 方法。 对应于 ScarletCharacter 修饰此类还声明 AdornmentLayerDefinition ,并将 NameAttributeOrderAttributeTextViewRoleAttribute时将其导出。

  7. 在生成此解决方案时,复制的程序集清单和在的实验目录中。

  8. 当您运行在调试器中查看此项目, Visual Studio 的第二个实例进行实例化。 如果打开文本文件,如蓝色背景,的红色所述文本中的所有 " a " 字符显示。

创建一个视区相对修饰扩展

编辑视区修饰模板创建外接紫罗兰色框中有一个红色边框到视区的右上角的一个视区相对修饰。

备注

视 区是当前显示文本视图的区域。

使用编辑器视区修饰模板,创建视区修饰扩展

  1. 文件 菜单上,指向 然后单击 新项目。 在 新项目 对话框中,展开 Visual C#Visual Basic 然后单击 扩展性。 在 模板 窗格中,选择 编辑视区修饰。 在 名称 框中,键入 TestViewportAdornment。 单击**“确定”**。

    打开 TestViewportAdornment 项目。

  2. 打开 source.extension.vsixmanifest 文件并编辑该文件如下所示:

    • 产品名称:TestViewportAdornment

    • 作者:Fabrikam

    • 版本:1.0

    • 声明:这是测试视区相对修饰扩展。

    不要更改 ID. 它自动生成。

  3. 内容 头此项目指定内容。 此扩展是 MEF 组件,和内容,并在 TestViewportAdornment 定义。

  4. 具有两个代码文件,如下所示:

    • TestViewportAdornment 包含 PurpleCornerBox

    • TestViewportAdornmentFactory 包含 AdornmentFactory

  5. PurpleCornerBox 类通过删除和重新添加修饰提供修饰的 UI 功能在其构造函数并处理的 ViewportHeightChangedViewportWidthChanged 事件在视区的右上角。

  6. AdornmentFactory 类从 IWpfTextViewCreationListener继承,并通过实例化修饰执行 TextViewCreated 方法。 对应于 PurpleCornerBox 修饰此类还声明 AdornmentLayerDefinition ,并将 NameAttributeOrderAttributeTextViewRoleAttribute时将其导出。

  7. 在生成此解决方案时,复制的程序集清单和在的实验目录中。

  8. 当您运行在调试器中查看此项目, Visual Studio 的第二个实例进行实例化。 如果打开文本文件,并将一个红色的大纲紫罗兰色框中显示在视区的右上角。

创建边距扩展

编辑器边距模板创建以单词 “hello world 显示在一起的绿色边距!”在水平滚动条下。

若要创建边距扩展使用编辑的边距线模板

  1. 文件 菜单上,指向 然后单击 新项目。 在 新项目 对话框中,展开 Visual C#Visual Basic 然后单击 扩展性。 在 模板 窗格中,选择 编辑器边距。 在 名称 框中,键入 TestMargin。 单击**“确定”**。

    打开 TestMargin 项目。

  2. 打开 source.extension.vsixmanifest 文件并编辑该文件如下所示:

    • 产品名称:TestMargin

    • 作者:Fabrikam

    • 版本:1.0

    • 声明:这是测试边距扩展。

    不要更改 ID. 它自动生成。

  3. 内容 头此项目指定内容。 此扩展是 MEF 组件,和内容,并在 TestMargin 定义。

  4. 具有两个代码文件,如下所示:

    • TestMargin 包含 GreenMargin 类。

    • TestMarginFactory 包含 MarginFactory 类。

  5. GreenMargin 类从 Canvas 继承并实现 IWpfTextViewMargin。 它提供边距的 UI 功能在其构造函数。

  6. MarginFactory 类实现 IWpfTextViewMarginProvider,因此,其 CreateMargin 方法的实现实例化边距。 此类可以处理 NameAttributeOrderAttributeMarginContainerAttributeContentTypeAttributeTextViewRoleAttribute的导出。

  7. 在生成此解决方案时,复制的程序集清单和在的实验目录中。

  8. 当您运行在调试器中查看此项目, Visual Studio 的第二个实例进行实例化。 如果打开文本文件,并将单词 “hello world " 绿色边距!”在水平滚动条下显示。

请参见

概念

编辑扩展点