J'essaie de supprimer un corps de classe en utilisant le nouveau modèle de code de l'éditeur de texte dans une extension Visual Studio 2010. Autrement dit, j'essaie d'utiliser la méthode Delete sur ITextEdit pour tout supprimer entre accolades.Comment trouver la position équivalente dans un iTextEdit d'un EditPoint.AbsoluteCharOffset
je peux avoir accès à la position de caractère absolu du début et la fin de la classe en utilisant les
codeClass.GetStartPoint(vsCMPart.vsCMPartBody).CreateEditPoint().AbsoluteCharOffset
et
codeClass.GetEndPoint(vsCMPart.vsCMPartBody).CreateEditPoint().AbsoluteCharOffset
méthodes sur l'interface CodeClass. Si je puis obtenir un ITextEdit de la ITextBuffer de IWpfTextViewHost en cours, et puis essayer de supprimer:
iTextEdit.Delete(startCharOffset, endCharOffset - startCharOffset);
la suppression est incorrecte. Il semble qu'il n'y ait pas de correspondance 1: 1 entre AbsoluteCharOffset sur l'ancien modèle et la position dans le nouveau modèle de texte.
Comment interagir entre les deux modèles?
Merci d'avance pour votre aide.