在键入{时,使用VS2012和ReSharper 8自动围绕选择括号?

时间:2013-11-13 09:37:02

标签: visual-studio-2012 resharper keyboard-shortcuts

我知道我可以进行选择并使用ReSharper动作菜单围绕大括号,或使用众多“Surround with ...”键盘快捷键之一。

我正在寻找的是一种方法来做到以下(也就是最懒惰的方式):

  1. 选择一些代码
  2. 按{
  3. 所选文字现在用大括号括起来。
  4. 这适用于例如Xamarin Studio(适用于[,{,(大括号)。

    有没有办法在Visual Studio中实现这一点,使用内置功能还是插件?

1 个答案:

答案 0 :(得分:2)

您应该能够编写一个resharper插件来执行此操作。您可以通过调用ITypingAssistManager.AddTypingHandler为特定字符(例如“{”)注册打字辅助处理程序。您的处理程序应查看文档是否有选择,并修改文档以在选择内容周围插入打开和关闭字符。

唯一的问题可能是优先级 - '{'字符已经有了C#文档的处理程序。添加另一个处理程序会将其添加到处理程序链的末尾,现有的处理程序可能会先跳入。在这种情况下,您可以使用ITextControlManager.AddTypingHandler注册自己,这是TypingAssistManager所做的,但它允许指定优先级,因此您可以在TypingAssistManager之前调用。

与往常一样,将dotPeek指向ReSharper bin文件夹并开始使用AddTypingHandler的用法,或查看TypingAssistManager的实现。