Я хочу сделать автоматическую замену строк в Visual Studio 2008, используя макрос.Я создал макрос с помощью рекордера (см. Код ниже), но он не работает (хотя в интерактивном режиме замена работает нормально).
Я хочу, чтобы замена применялась к текущему выбору в текущемдокумент.Я удивлен, увидев имя файла (Text.txt
) в явном виде, так что макрос, вероятно, не будет работать с другим файлом, но он все равно не сработает на этом.
Вотисточник макроса:
Sub Multiline()
DTE.ExecuteCommand("Edit.Replace")
DTE.Windows.Item("Text.txt").Activate()
DTE.Find.FindWhat = "$"
DTE.Find.ReplaceWith = "\n\n"
DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocumentSelection
DTE.Find.MatchCase = True
DTE.Find.MatchWholeWord = False
DTE.Find.MatchInHiddenText = True
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
If (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then
Throw New System.Exception("vsFindResultNotFound")
End If
End Sub
Для справки, соответствующее диалоговое окно замены:
Есть подсказка?Почему это терпит неудачу?