我知道我可以进行选择并使用ReSharper动作菜单围绕大括号,或使用众多“Surround with ...”键盘快捷键之一。
我正在寻找的是一种方法来做到以下(也就是最懒惰的方式):
这适用于例如Xamarin Studio(适用于[,{,(大括号)。
有没有办法在Visual Studio中实现这一点,使用内置功能还是插件?
答案 0 :(得分:2)
您应该能够编写一个resharper插件来执行此操作。您可以通过调用ITypingAssistManager.AddTypingHandler
为特定字符(例如“{”)注册打字辅助处理程序。您的处理程序应查看文档是否有选择,并修改文档以在选择内容周围插入打开和关闭字符。
唯一的问题可能是优先级 - '{'字符已经有了C#文档的处理程序。添加另一个处理程序会将其添加到处理程序链的末尾,现有的处理程序可能会先跳入。在这种情况下,您可以使用ITextControlManager.AddTypingHandler
注册自己,这是TypingAssistManager
所做的,但它允许指定优先级,因此您可以在TypingAssistManager
之前调用。
与往常一样,将dotPeek指向ReSharper bin文件夹并开始使用AddTypingHandler
的用法,或查看TypingAssistManager
的实现。