我在三个不同的论坛上提出过这个问题,没有人可以弄明白。我试图在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