我想在Visual Studio 2010扩展中使用新的文本编辑器代码模型来删除类体。也就是说,我试图使用ITextEdit上的Delete方法来删除大括号之间的所有内容。如何在EditPoint.AbsoluteCharOffset的iTextEdit中找到相应的位置
我可以使用CodeClass接口上的
codeClass.GetStartPoint(vsCMPart.vsCMPartBody).CreateEditPoint().AbsoluteCharOffset
和
codeClass.GetEndPoint(vsCMPart.vsCMPartBody).CreateEditPoint().AbsoluteCharOffset
方法可以访问类的起点和终点的绝对字符位置。如果我再拿到从目前IWpfTextViewHost的ITextBuffer的ITextEdit,然后再试着删除:
iTextEdit.Delete(startCharOffset, endCharOffset - startCharOffset);
删除不正确。看起来旧模型上的AbsoluteCharOffset与新文本模型中的位置之间不存在1:1映射。
如何在两种模型之间进行交互?
在此先感谢您的帮助。