我怎样才能 运行 旧 VB 最近的 Visual Studio 宏?
How can I run old VB Macros in recent Visual Studio?
我需要 运行 VB 中的旧 visual studio 宏。但我发现 Visual Studio 中不再支持宏,但这里有宏的扩展:https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.MacrosforVisualStudio
任何想法我如何 运行 Visual Studio 2017 社区版中的以下内容,或将其转换为 javascript 新扩展支持的内容?
Sub TemporaryMacro()
DTE.ActiveDocument.Selection.StartOfDocument()
Dim returnValue As vsIncrementalSearchResult
While True
DTE.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.StartForward()
returnValue = DTE.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.AppendCharAndSearch(AscW("{"))
DTE.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.Exit()
If Not (returnValue = vsIncrementalSearchResult.vsIncrementalSearchResultFound) Then
Return
End If
DTE.ExecuteCommand("Debug.ToggleBreakpoint")
DTE.ExecuteCommand("Edit.GotoBrace")
DTE.ActiveDocument.Selection.CharRight()
End While
End Sub
我自己没有尝试宏扩展,但是将旧的 VB 宏转换为 JS 应该很简单。来自 VB 宏的全局字段 DTE 现在称为 dte。
未测试,但 JS 宏可能是:
function TemporaryMacro() {
dte.ActiveDocument.Selection.StartOfDocument();
var returnValue;
while (true) {
dte.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.StartForward();
returnValue = dte.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.AppendCharAndSearch("{".charCodeAt(0));
dte.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.Exit();
if(returnValue != vsIncrementalSearchResult.vsIncrementalSearchResultFound) {
return;
}
dte.ExecuteCommand("Debug.ToggleBreakpoint");
dte.ExecuteCommand("Edit.GotoBrace");
dte.ActiveDocument.Selection.CharRight();
}
}
您可能需要调用该函数,因此将此行放在上面代码之前:
TemporaryMacro();
或者如果您不想转换代码,您可以直接使用 VB .NET 或扩展名为 Visual Commander 的 C#。
我需要 运行 VB 中的旧 visual studio 宏。但我发现 Visual Studio 中不再支持宏,但这里有宏的扩展:https://marketplace.visualstudio.com/items?itemName=VisualStudioPlatformTeam.MacrosforVisualStudio
任何想法我如何 运行 Visual Studio 2017 社区版中的以下内容,或将其转换为 javascript 新扩展支持的内容?
Sub TemporaryMacro()
DTE.ActiveDocument.Selection.StartOfDocument()
Dim returnValue As vsIncrementalSearchResult
While True
DTE.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.StartForward()
returnValue = DTE.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.AppendCharAndSearch(AscW("{"))
DTE.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.Exit()
If Not (returnValue = vsIncrementalSearchResult.vsIncrementalSearchResultFound) Then
Return
End If
DTE.ExecuteCommand("Debug.ToggleBreakpoint")
DTE.ExecuteCommand("Edit.GotoBrace")
DTE.ActiveDocument.Selection.CharRight()
End While
End Sub
我自己没有尝试宏扩展,但是将旧的 VB 宏转换为 JS 应该很简单。来自 VB 宏的全局字段 DTE 现在称为 dte。 未测试,但 JS 宏可能是:
function TemporaryMacro() {
dte.ActiveDocument.Selection.StartOfDocument();
var returnValue;
while (true) {
dte.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.StartForward();
returnValue = dte.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.AppendCharAndSearch("{".charCodeAt(0));
dte.ActiveDocument.ActiveWindow.Object.ActivePane.IncrementalSearch.Exit();
if(returnValue != vsIncrementalSearchResult.vsIncrementalSearchResultFound) {
return;
}
dte.ExecuteCommand("Debug.ToggleBreakpoint");
dte.ExecuteCommand("Edit.GotoBrace");
dte.ActiveDocument.Selection.CharRight();
}
}
您可能需要调用该函数,因此将此行放在上面代码之前:
TemporaryMacro();
或者如果您不想转换代码,您可以直接使用 VB .NET 或扩展名为 Visual Commander 的 C#。