我在三個不同的論壇上提出過這個問題,沒有人可以弄明白。我試圖在VS2010中編寫一個宏,它將複製一些代碼。因此,鑑於這種設置:如何編寫一個在文件之間複製文本的VS宏?
public class foo {
//[source1]
public overrides string ToString() {
return "Hello from Foo"
}
//[/source1]
}
public class bar {
//[destination1]
//[/destination1]
}
...目標是點擊宏和已複製到酒吧的代碼,使其覆蓋的ToString()也。我有一個半工作版本
DTE.Find.FindWhat = "(//\[source1\]{(.|\n)*})//\[/source1\])|//\[destination1\]{(.|\n)*}//\[/destination1\]"
DTE.Find.Target = vsFindTarget.vsFindTargetSolution
DTE.Find.MatchCase = False
DTE.Find.MatchInHiddenText = True
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
......只是如果這些類在不同的文件中是完全沒有用的。我無法捕捉到找到的實際匹配;我可以將它們輸出到vsFindResults1,但我無法用宏選擇窗口文本。我可以點擊它,Ctrl-A - > Ctrl-C並捕獲它,但是當我錄製一個宏時,它什麼也不顯示!非常沮喪....任何想法?
啊,所以我將不得不迭代自己。我會試試這個。 – MrEff 2012-03-28 16:11:45
沒錯。有幾種方法可以做到這一點,但我記得,有一種方法是迭代項目中的ProjectItems。 – 2012-03-28 18:49:23