使用VS2010
感谢汉斯的回答(因为我很谦虚地回答我自己的问题 8 小时)
Sub CreateBreakPoint()
Dim doc As TextDocument = _
CType(DTE.ActiveDocument.Object("TextDocument"), TextDocument)
Dim point As EditPoint = doc.StartPoint.CreateEditPoint
While point.NextBookmark()
Try
point.ClearBookmark()
DTE.Debugger.Breakpoints.Add("", DTE.ActiveDocument.FullName, point.Line(), 1, "", dbgBreakpointConditionType.dbgBreakpointConditionTypeWhenTrue, "c#", "", 0, "", 0, dbgHitCountType.dbgHitCountTypeNone)
Catch ex As Exception
MsgBox("error: " + ex.Message)
End Try
End While
MsgBox("Done")
End Sub
我有一个宏,可以在每个书签处设置断点。它可以工作(就像大锤一样)......但出于好奇,我该如何执行以下操作之一,以便我可以使用“正确”的 For 循环
- 检索 Bookmark 对象列表(表面上带有行号属性)
- 检查 DTE.ExecuteCommand("Edit.NextBookmark") 是否返回 false 或某些指示我已到达最后一个书签
- 检索具有特定“查询”的书签对象列表,因此我不必先删除所有当前书签
当前代码
Public Module BookMarksToBreakPoints
Sub TemporaryMacro()
Dim bookmarkWin As Window = DTE.Windows.Item(WindowKinds.vsWindowKindBookmarks)
While True
Try
DTE.ExecuteCommand("Edit.NextBookmark")
DTE.ExecuteCommand("Edit.ToggleBookmark")
DTE.ExecuteCommand("Debug.ToggleBreakpoint")
Catch e As Exception
MsgBox("Done")
Exit While
End Try
End While
End Sub
End Module