我正在尝试创建启动配置,其中环境变量由Shell脚本动态确定。即使command variable可以通过workbench.action.tasks.runTask
启动任务,似乎也无法指定要运行的任务。 Input variables在这方面似乎更灵活一些,但我似乎无法使其正常工作。这是我得到的:
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/main.go",
"env": {
"XXX": "${input:foo}"
},
"args": []
}
],
"inputs": [
{
"type": "command",
"id": "foo",
"command": "workbench.action.tasks.runTask",
"args": {
"args": "bar",
}
}
]
}
tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "bar",
"type": "shell",
"command": "find /dev -name 'myspecialdevice*' -maxdepth 1"
}
]
}
问题是仍在询问用户要运行哪个任务。我对launch.json的inputs.args
部分最不确定。我真的不知道键值应该是多少。也许implementation有助于弄清楚这一点?
答案 0 :(得分:0)
在您的launch.json
中,尝试更换
"args": {
"args": "bar",
}
使用
"args": ["bar"]
答案 1 :(得分:0)
这个答案与使用 vscode 任务并没有真正的关系,但是您的介绍性句子提供了动机/要解决的问题。
我遇到了同样的问题,想知道 vscode's input type:command。它提供了一种嵌入(自定义)vscode 命令 的方法——这看起来像是在此处嵌入(自定义)扩展的强大机制。但我没有找到一个内置命令,它只是执行一个 shell 脚本并返回它的标准输出。因此,恕我直言,需要一个扩展来捕获 shell 命令的输出。
例如https://marketplace.visualstudio.com/items?itemName=augustocdias.tasks-shell-input
提供执行此操作的命令 shellCommand.execute
。
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/main.go",
"env": {
"XXX": "${input:foo}"
},
"args": []
}
],
"inputs": [
{
"id": "foo",
"type": "command",
"command": "shellCommand.execute",
"args": {
"command": "find /dev -name 'myspecialdevice*' -maxdepth 1",
"cwd": "${workspaceFolder}",
/* To prevent user from selecting output (if there is just
one line printed by command), un-comment next line */
//"useSingleResult": true
}
}
]
}