Я задавал этот вопрос на трех разных форумах, и никто не может понять это. Я пытаюсь написать макрос в 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 и захватить его, но когда я делаю эту запись макроса, он ничего не показывает !! Очень расстроен .... есть идеи?