Как в VS Code перейти к текущей позиции отладчика? Это обозначено желтоватой линией, но я, как правило, теряюсь, просматривая другие файлы и функции, только для того, чтобы найти путь обратно туда, где в настоящее время приостановлен мой сеанс отладки.
Должно быть достаточно просто, но я ничего не нашел в документах. Я даже прошел все действия, содержащие 'debug' в карте клавиатуры, но не нашел того, что ищу.
Кажется, нет никакой команды go to current breakpoint
, только предыдущая и следующая команды.
Однако я вижу, что эта «ошибка» может быть полезной: см. Оценка repl заставляет редактор перейти к текущей точке останова!
Таким образом, вы можете просто сфокусировать repl, Enter, и вы перейдете к текущей точке останова. Это загрязняет вашу консоль отладки результатом undefined
, но, возможно, это приемлемо.
Или вы можете назначить привязку клавиш макросу, который выполняет команду focus и очищает консоль отладки за один раз. Используя расширение макроса по вашему выбору — я использую мультикомандный ниже — это войдет в ваши настройки:
"multiCommand.commands": [
{
"command": "multiCommand.gotoCurrentBreakpoint",
// "interval": 350,
"sequence": [
"workbench.debug.action.focusRepl",
"repl.action.acceptInput",
// following command clears the debug console if you wish
"workbench.debug.panel.action.clearReplAction"
]
}
]
и некоторая привязка клавиш:
{
"key": "alt+/",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.gotoCurrentBreakpoint" },
},
Как долго основная «ошибка» — если это ошибка — будет использоваться .....?
С Alt+/
vscode сначала проверяет привязки клавиш, а затем настройки последовательности? Почему бы не поместить весь код в сочетания клавиш?
@Timo На момент ответа мультикоманда не поддерживала использование только привязки клавиш со всеми командами. Это недавнее обновление расширения.
Желаемый эффект (переход к текущей точке выполнения) можно получить, щелкнув (или выбрав с помощью клавиатуры) самую верхнюю запись в представлении «Стек вызовов».
Используя расширение макроса с несколькими командами (вдохновленный ответ Марка), можно создать пользовательскую команду, которая всегда будет выбирать самую верхнюю запись в представлении стека вызовов.
Это относится к вашему keybindings.json
:
{
"key": "cmd+f4",
// Go to current debugging position
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"workbench.debug.action.focusCallStackView",
"list.clear",
"list.focusFirst",
"list.select"
// optional, to focus your editor:
// workbench.files.action.focusOpenEditorsView
]
}
},
Я получил command 'extension.multiCommand.execute' not found
, поэтому мне, вероятно, придется посмотреть на ответ Марка, чтобы добавить код в settings.json
.
@Timo, просто чтобы убедиться, ты установил расширение?
Большое спасибо за то, что копаете так глубоко! Прочитав сообщение об ошибке, на которое вы ссылались, я наткнулся на более простое решение моей проблемы, которое было очевидным, но до этого я не замечал (я опубликую его как ответ). Также спасибо, что упомянули о расширении для макросов — оно точно пригодится!