Visual Assist X是Whole Tomato Software的旗舰产品,它为Microsoft的IDE系列提供了丰富的功能扩展,包括Visual C++ 6.0到Visual Studio 2005。它支持C#、C++和VB.NET。
Visual Assist X提供了超过40项功能,如果一一介绍,可能需要阅读一个小时。因此,本文将重点介绍其中的一些亮点。
安装Visual Assist X前后,Visual Studio的代码视图对比如下:
通过对比可以看出,Visual Assist X为代码提供了更加直观的视觉体验。它通过区分函数/方法(棕色)、变量(灰色)和类型(蓝色)来提高工作效率。特别感兴趣的是它能够着色宏(紫色),这是Visual Studio 2005仍然无法做到的。
甚至可以将语法着色应用到工具提示上!
Visual Assist X的开发者理解不同开发者的工作方式不同,因此他们使得语法着色高度可定制。可以选择认为有意义的颜色,并决定哪些内容需要着色。
对于某些开发者来说,某些功能可能非常有用,而对于其他人来说可能只是干扰。因此,Visual Assist X允许只启用认为有帮助的功能。例如,代码截图还显示了局部符号加粗和“稳定符号”斜体,但不喜欢使用这些功能,也没有在生产机器上启用它们。
这个功能让对Visual Assist X上瘾。将光标放在一个符号上,然后按Alt+G,或者点击按钮。将被带到变量或类型的声明,或者方法的原型或实现。在后一种情况下,Visual Assist X允许选择头文件或实现文件。
这个功能不依赖于Visual Studio生成的浏览器文件,所以不必先编译代码。相反,Visual Assist X在后台解析代码和库/SDK头文件。这个过程是受控的,不会影响IDE的性能。
Visual Assist X甚至知道C/C++宏的值以及它们的定义位置,并会在工具提示中显示该值,并允许跳转到宏的定义。在看来,仅凭这一点就值回票价了!
Visual Assist X在输入时提供建议以完成部分符号名称。这个令人难以置信的功能允许专注于开发任务,而不是记住成百上千的变量和方法名称的苦差事。输入时,Visual Assist X会将按键与当前作用域中的符号匹配,并显示一个列表供接受建议。输入的字符越多,建议就越精确:
这是另一个会觉得不可或缺的功能。在类实例后按“.”或“->”,Visual Assist X会为提供一个强大的成员列表框。可以配置Visual Assist X以加粗显示非继承方法,并将它们放在列表的首位,让快速访问最需要的类成员。
Visual Assist X还允许根据公共、私有和受保护的方法、变量、运算符、常量和枚举来过滤列表。
如果记得方法名称的一部分,可以使用缩写来输入所知道的,Visual Assist X会根据输入的部分文本过滤列表。在以下示例中,列表被减少到包含“fill”的所有成员。
首字母缩写通过匹配按键与可能包含其他字符的方法来节省输入。例如,一个名为nSomeVeryLongIntegerName的变量可以通过依次输入n-s-v-l-i-n来访问。在示例中,找到了想要的条目“m_bnu”。
缩写和首字母缩写可以与建议列表和增强的成员列表框一起使用。
Visual Assist X在处理多个源文件时非常有用,无论是在单个项目中还是在大型解决方案中分布在多个项目中。尽管Visual Studio允许通过在解决方案资源管理器中将文件组织在逻辑文件夹下来进行组织,但这使得在不知道它属于哪个组时很难找到特定文件。
使用Visual Assist X,可以通过打开OFIW对话框并输入文件名的一部分来快速定位解决方案中的任何项目下的文件。在示例中,找到了包含“util”的所有头文件。
与OFIW类似,Find Symbol in Workspace对话框允许输入符号名称的一部分,无论是变量、方法、宏还是常量,列表都会填充匹配的符号定义。双击一行即可跳转到该符号定义。
甚至无法告诉这比“在文件中查找”功能有多高效,可以通过清除“仅显示当前工作区中定义的符号”复选框来找到任何地方的符号。例如,取消选中该框并键入SendMessage以在Windows头文件中找到它。
可以单独写一本书来介绍这个功能。基本上,Autotext是一组模板,用于生成常见的代码结构。模板可能包含字面字符串或占位符,这些占位符被替换为预定义的Visual Assist X变量、用户输入、环境变量、当前文本选择或剪贴板内容。考虑以下示例,快捷键是"//-",代码是"// $end$ [$MONTH$/$DAY$/$YEAR$ %USERNAME%]":
可以通过直观的Autotext语言猜测这里发生了什么。Visual Assist X会监视与设置的快捷键匹配的按键,并在匹配时提供建议列表。如果接受建议,可替换参数将被填充,光标将放置在$end$标签处以供进一步输入。也可以在不键入快捷键组合的情况下插入Autotext。
Autotext可以用来输出几个字符或创建整个应用程序框架。可以通过易于使用的Autotext编辑器和大量示例模板来控制。
以下是最喜欢的其他一些功能:
使用单个按键或鼠标点击,快速在源文件和相应的头文件之间切换。
根据上下文查找上一个或下一个。例如,如果在一个文件中有一百个方法,每个方法都包含一个名为nCount的局部变量,将搜索限制在当前方法中(甚至在一个if或while循环中)。Visual Assist X会忽略不属于当前作用域的nCount实例。
当错误地使用点运算符与指针时,自动将.转换为->。
自动修复拼写错误的符号的大小写。