Как запрограммировать макрос Visual Studio 2010 Для доступа и редактирования определенных файлов проекта? - PullRequest
2 голосов
/ 22 апреля 2011

Я хочу написать макрос, чтобы поместить выбранный текст в определенный файл XML в моем проекте.например мой путь ~ / Pages / Dictionary / en.xml.и я хочу поместить выбранный текст из файла aspx.cs в файл en.xml.пожалуйста, ведите меня оттуда, где я должен начатья могу получить выделенный текст.Теперь я не знаю, как мне получить доступ к содержимому файла, перейти в конец файла (или к другому месту в файле) и вставить в него текст в соответствии с выбранным текстом.

1 Ответ

2 голосов
/ 09 мая 2011

Чтобы открыть файл, используйте путь дерева в обозревателе решений или просто используйте полный путь к файлу:

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() или другими способами, чтобы управлять редактором кода .

...