2009-09-04 4 views
0

У меня возникла ситуация, когда я хочу запустить макрос Visual Studio, который имеет тип пользователя что-то в InputBox, а затем вставляет фрагмент и включает в себя этот текст где-то в нем. К сожалению, я не могу понять, как вставить фрагмент из макрокода. Похоже, что это будет что-то вродеВставить фрагмент из макроса Visual Studio

DTE.ExecuteCommand("Edit.InvokeSnippetFromShortcut") 

или

DTE.ExecuteCommand("Edit.InvokeSnippetFromShortcut", "theSnippetName") 

но те не работают. Есть идеи?

ответ

1

Вы можете вставить фрагмент кода со следующим кодом.

DTE.ActiveDocument.Selection.Text = "snippetshortcut" 
DTE.ExecuteCommand("Edit.InsertTab") 

Если вы используете VS 2010, то вам нужно будет позвонить DTE.ExecuteCommand ("Edit.InsertTab") дважды.

+0

Святая корова, вы правы. И теперь, когда я это вижу, я понимаю, что, вероятно, я мог бы обнаружить это, записав макрос, если бы я подумал об этом. Благодаря! ... Теперь, если бы я мог вспомнить, что я делал шестнадцать месяцев назад, о чем я хотел это знать. :) –

+0

Для этого мне понадобилось вставить фрагмент, но заполнение некоторых литералов рассчитанными значениями (например, сегодняшняя дата). – Matt

0

Вам необходимо решить, где должен быть выбран этот код. Для вставки текста в текущий текст необходимо использовать следующий код:

Dim textSelection As EnvDTE.TextSelection 
textSelection = DTE.ActiveWindow.Selection   
textSelection.Insert(MyTextVarHere) 
+0

Я хочу вставить * фрагмент *. Не только текст. * Snippet * имеет определенное значение в Visual Studio. –

 Смежные вопросы

  • Нет связанных вопросов^_^