2

我想编写一个宏来将选定的文本放入我项目中的特定 XML 文件中。例如我的路径是 ~/Pages/Dictionary/en.xml。我想将选定的文本从 aspx.cs 文件放到 en.xml 文件中。
请指导我从哪里开始。我可以得到选定的文本。现在我不知道如何访问文件内容转到文件末尾(或文件中的其他位置)并根据选定的文本插入一些文本。

4

1 回答 1

2

要打开文件,请使用解决方案资源管理器中的树路径或仅使用完整文件路径:

DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
DTE.ActiveWindow.Object.GetItem _
    ("{solutionname}\{projectname}\Pages\Dictionary\en.xml") _
    .Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ActiveWindow.Object.DoDefaultAction()

或者

DTE.ItemOperations.OpenFile _
    ("{projectpath}\Pages\Dictionary\en.xml")
DTE.ActiveDocument.Activate()

您没有提到这是否适用于单个项目和/或解决方案,所以我不知道仅对花括号中的项目进行硬编码是否就足够了。


要在文件末尾插入文本,您可以选择文档末尾并粘贴(例如,如果您使用Selection.Copy()),或者您可以创建一个编辑点并插入任何文本:

DTE.ActiveDocument.Selection.EndOfDocument()
DTE.ActiveDocument.Selection.Paste()

或者

Dim editPoint As EnvDTE.EditPoint
selection = DTE.ActiveDocument.Selection()
editPoint = selection.TopPoint.CreateEditPoint()
editPoint.Insert("any text" + vbLf)

我不确定文件末尾是否是您要添加文本的真实位置;如果没有,可以使用例如、、、或其他方式来导航文档以StartOfLine()控制代码编辑器LineUp()WordRight()

于 2011-05-08T20:47:40.627 回答