我在三个不同的论坛上问过这个问题,没有人能弄清楚。我正在尝试在 VS2010 中编写一个宏来复制一些代码。因此,鉴于此设置:
public class foo {
//[source1]
public overrides string ToString() {
return "Hello from Foo"
}
//[/source1]
}
public class bar {
//[destination1]
//[/destination1]
}
...目标是单击宏并将代码复制到 bar,以便它也覆盖 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 并捕获它,但是当我这样做录制宏时,它什么也没有显示!!非常沮丧....有什么想法吗?