扩展 Visual Studio 的"Code Snippet"功能



当我编写测试方法时,我键入"testm",按tab键,然后神奇地看到:

[TestMethod]
public void MethodName()
{
}

当我输入methodName时,它被高亮显示(这里不能显示)作为我正在填充的"字段"。我相信你们都熟悉这种行为。

就我个人而言,我喜欢我的测试方法的名字像Can_My_Method_Do_That_Thing代替CanMyMethodDoThatThing。我发现它们更容易阅读,而且大多数时候它们实际上是一个句子。

由于我不想进入的原因,我很难键入所有这些_字符,我希望能够使用空格键,并在我按"Enter"时自动替换名称中的空格。

我听说Visual Studio是可扩展和可定制的等等。它是否具有足够的可扩展性?

你可以实现和使用你自己的代码片段,微软提供了一个很好的指南,关于如何做到这一点:演练:实现代码片段

要快速查看"testm"扩展(这是代码片段类型)是如何"部分"实现的,您可以转到c:Program Files (x86)Microsoft Visual Studio 10.0VC#Snippets1033Test目录并编辑testmethod.snippet文件。

我自己从来没有实现过这种"扩展",但是微软的"扩展编辑器"网站是如何实现这一目标的一个很好的信息来源。从这里开始查找

如果你安装了CodeRush Xpress,那么你不仅可以获得一些免费的生产力和重构工具,而且还有一个CodeRush Xpress插件的开源社区。

我发现这个插件(几乎)完全是你想要的。

需要注意的是它是为NUnit而不是MSTest开发的,所以你会得到一个[Test]属性而不是[TestMethod]属性。由于这是开源的,因此根据您的需求修改代码应该相当容易。

我建议最好的方法是研究编辑器的可扩展性并解决它。以下步骤是您可能需要执行的操作。

  1. 映射一个键到你的"下划线"动作。
  2. 使用编辑器扩展点,您可以访问选定的文本,并对其进行处理。
  3. 最后将其替换。

一个建议。虽然学习曲线可能有点高,必须通过MEF和类似的东西。但这是值得的。

另一种值得考虑的方法是使用外部工具重新映射键盘。例如,让AutoHotKey对testm[Tab]击键序列做出反应并切换到将空格映射为下划线的模式(或者在键入并添加下划线后立即删除每个空格)应该是很简单的。同样地,按Enter键可以再次切换出该模式

最新更新