VS Code — переход к текущей позиции отладки с помощью клавиатуры

Как в VS Code перейти к текущей позиции отладчика? Это обозначено желтоватой линией, но я, как правило, теряюсь, просматривая другие файлы и функции, только для того, чтобы найти путь обратно туда, где в настоящее время приостановлен мой сеанс отладки.

Должно быть достаточно просто, но я ничего не нашел в документах. Я даже прошел все действия, содержащие 'debug' в карте клавиатуры, но не нашел того, что ищу.

Библиотека для работы с мороженым
Библиотека для работы с мороженым
Лично я попрощался с операторами print() в python. Без шуток.
11
0
3 361
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Кажется, нет никакой команды 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" },
},

demo of returning to current breakpoint

Как долго основная «ошибка» — если это ошибка — будет использоваться .....?

Большое спасибо за то, что копаете так глубоко! Прочитав сообщение об ошибке, на которое вы ссылались, я наткнулся на более простое решение моей проблемы, которое было очевидным, но до этого я не замечал (я опубликую его как ответ). Также спасибо, что упомянули о расширении для макросов — оно точно пригодится!

panepeter 23.05.2019 09:28

С Alt+/ vscode сначала проверяет привязки клавиш, а затем настройки последовательности? Почему бы не поместить весь код в сочетания клавиш?

Timo 11.04.2021 21:24

@Timo На момент ответа мультикоманда не поддерживала использование только привязки клавиш со всеми командами. Это недавнее обновление расширения.

Mark 11.04.2021 21:26
Ответ принят как подходящий

Желаемый эффект (переход к текущей точке выполнения) можно получить, щелкнув (или выбрав с помощью клавиатуры) самую верхнюю запись в представлении «Стек вызовов».

Используя расширение макроса с несколькими командами (вдохновленный ответ Марка), можно создать пользовательскую команду, которая всегда будет выбирать самую верхнюю запись в представлении стека вызовов.

Это относится к вашему 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 11.04.2021 21:18

@Timo, просто чтобы убедиться, ты установил расширение?

panepeter 12.04.2021 09:13

Другие вопросы по теме