如何扩展 Visual Studio 编辑器

2024-10-13 07:43:21

在 Visual Studio 2010 的时代,扩展 Visual Studio 的途径有很多,开发者可以选择宏、Add-in、MEF 和 VSPackages愉桴狁焕进行自定义的扩展。但是宏在 Visual Studio 2012 的时候被阉割了,Add-in 也在 Visual Studio 2013 里被抹杀了,这样的调整对于 Visual Studio 来说是好的,但是对于那些习惯了使用宏和Add-in的团队可能就郁闷了。  下面小编将一步步教你如何实现对 Visual Studio 代码编辑器的扩展,最终将实现一个可以支持如下两个功能的扩展。

如何扩展 Visual Studio 编辑器

各种 Editor 模板的区别

1、安装完 SDK 后,就会拥有如上图中所示的多种扩展模板,其中包含四种和 Editor 相关的模板,它们之间有什么区别吗?  Editor Classifier  可以修改编辑器中代码的高亮、添加一些智能的标签(比如当我们修改了某个变量名时,会在变量名下出现一个小短横,当你鼠标移上去后会提示你是否要修改所有引用的地方)等,示例效果如下:

如何扩展 Visual Studio 编辑器

3、Editor Text Adornment  用于对编辑器中的文字进行修饰,添加一些WPF的元素,示例效果如下:

如何扩展 Visual Studio 编辑器

Visual Studio 实验环境

1、对于这些扩展的测试,Visual Studio 提供了 Experimental Instance 用于实验环境,该环境和真实的 Visual Studio 完全一样,只不过它和真实版本各自独享一套配置文件,对于实验环境的配置不会影响到真实环境。  第一次启动实验环境,会进入如图7所示的默认环境配置的界面。

如何扩展 Visual Studio 编辑器

3、Editor Viewport Adornment原理解析要想理解它,必先使用它。通过模板创建好的新Editor Viewport Adornment项目时,已经包含了示例代码,该示例代码的功能就是如图6所示在编辑区添加一个紫色的矩形框。

如何扩展 Visual Studio 编辑器

5、实现原理  在介绍 MEF 和 VSPackage 的时候,我说过整个 Editor 部分都是基于 MEF 思想开发的。简单来说,Visu锾攒揉敫al Studio Editor 向第三方扩展提供了产物(Export)、接受者(Import)及各种协议,第三方扩展根据对应的协议制作生产出符合的产物,然后 VS 会将第三方的产物与自己的接受者进行组合(就好像是把符合形状的积木放入盒子中)。这样,我们就能在下次启动 VS 的时候使用这个扩展了。

如何扩展 Visual Studio 编辑器
猜你喜欢