DTE.ExecuteCommand ( "Edit.NextBookmark") - PullRequest
       14

DTE.ExecuteCommand ( "Edit.NextBookmark")

3 голосов
/ 11 октября 2011

с использованием 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

У меня есть макрос, который устанавливает точки останова на каждой закладке. Это работает (как кувалда) ... но из любопытства, как мне сделать одно из следующего, чтобы я мог использовать "правильный" для цикла

  1. получить список объектов Bookmark (якобы со свойством номера строки)
  2. проверка для DTE.ExecuteCommand ("Edit.NextBookmark"), чтобы возвратить false или некоторое указание, что я достиг последней закладки
  3. получить список объектов Bookmark с определенным «запросом», поэтому мне не нужно сначала удалять все текущие закладки

текущий код

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

1 Ответ

1 голос
/ 12 октября 2011

Спасибо Гансу Пассанту за толчок в правильном направлении.Финальный макрос:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...