Ответ 1
Вы можете сделать это довольно легко с помощью макроса Visual Studio. В Visual Studio нажмите Alt-F11, чтобы открыть Macro IDE и добавить новый модуль, щелкнув правой кнопкой мыши на MyMacros и выбрав Add | Add Module...
Вставьте в редактор исходного кода следующее:
Imports System
Imports System.IO
Imports System.Text.RegularExpressions
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module CustomMacros
Sub BreakpointFindResults()
Dim findResultsWindow As Window = DTE.Windows.Item(Constants.vsWindowKindFindResults1)
Dim selection As TextSelection
selection = findResultsWindow.Selection
selection.SelectAll()
Dim findResultsReader As New StringReader(selection.Text)
Dim findResult As String = findResultsReader.ReadLine()
Dim findResultRegex As New Regex("(?<Path>.*?)\((?<LineNumber>\d+)\):")
While Not findResult Is Nothing
Dim findResultMatch As Match = findResultRegex.Match(findResult)
If findResultMatch.Success Then
Dim path As String = findResultMatch.Groups.Item("Path").Value
Dim lineNumber As Integer = Integer.Parse(findResultMatch.Groups.Item("LineNumber").Value)
Try
DTE.Debugger.Breakpoints.Add("", path, lineNumber)
Catch ex As Exception
' breakpoints can't be added everywhere
End Try
End If
findResult = findResultsReader.ReadLine()
End While
End Sub
End Module
В этом примере используются результаты в окне "Найти результаты 1"; вам может понадобиться создать индивидуальный ярлык для каждого окна результатов.
Вы можете создать комбинацию клавиш, перейдя в Инструменты | Параметры... и выбрав Клавиатура в разделе Среда в навигации слева. Выберите свой макрос и назначьте любой ярлык, который вам нравится.
Вы также можете добавить свой макрос в меню или панель инструментов, перейдя в Инструменты | Настроить... и выбрав раздел Макросы в навигации слева. После того, как вы найдете свой макрос в списке, его можно перетащить в любое меню или на панели инструментов, где его текст или значок можно настроить по своему желанию.