Это работает для меня:
{
"label": "postdebugKill",
"type": "process",
"command":[
"${command:workbench.action.tasks.terminate}",
"${command:workbench.action.acceptSelectedQuickOpenItem}",
],
},
Первый "${command:workbench.action.tasks.terminate}"
вызовет панель с просьбой выбрать, какую задачу завершить.Поэтому, если у вас было несколько запущенных задач и вы хотели выбрать одну, вы должны использовать только эту команду.
Вторая "${command:workbench.action.acceptSelectedQuickOpenItem}"
завершит работу выбранной задачи на указанной выше панели.(Таким образом, вы даже не увидите панель завершения.) Если у вас есть только одна запущенная задача при вызове задачи postdebugKill
, она будет выбрана автоматически и, таким образом, будет завершена.В противном случае любое задание, указанное первым, будет прекращено.Опять же, если у вас запущено более одной задачи, и вы хотите выбрать, какую из них завершить, не включайте эту вторую команду.
Я не знаю ни одного способа перечисления, возможно, через args
опция имя метки, для которой задача, которую нужно завершить, если выполняется.Было бы неплохо иметь эту функциональность.
[postdebugKill
name может быть любым, каким вы хотите.]
Чтобы вызвать задачу postdebug, ваша конфигурация launch.json может выглядеть так:
{
"type": "node",
"request": "launch",
"name": "Gulp: serve",
"program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js",
"args": [
"serve"
],
// "preLaunchTask": "someTask",
"postDebugTask": "postdebugKill"
},
После остановки сеанса отладки "Gulp: serve"
будет запущена задача "postdebugKill"
.И поэтому, если бы я использовал "preLaunchTask"
для запуска задачи или просто запустил задачу, запущенную перед запуском сеанса отладки "Gulp: serve"
, то preLaunchTask
был бы прерван.
Возможность запуска команд vscodeв задачу был недавно добавлен в vscode.Некоторая минимальная информация здесь: с помощью команды в задании doc .