Visual studio code 使用launch.json中的“输入”选项以在Visual Studio代码中的预启动任务中使用

Visual studio code 使用launch.json中的“输入”选项以在Visual Studio代码中的预启动任务中使用,visual-studio-code,vscode-settings,vscode-debugger,Visual Studio Code,Vscode Settings,Vscode Debugger,在项目中有许多辅助工具实用程序。在启动和任务json文件中,它们被配置为允许用户选择要构建或调试的特定实用程序。我想做的是将启动中的选择传递给任务,任务使用该选择。launch.json配置文件如下所示: launch.json { "version": "0.2.0", "configurations": [ { "name": "Debug: <Utility App>", "type": "cppd

在项目中有许多辅助工具实用程序。在启动和任务json文件中,它们被配置为允许用户选择要构建或调试的特定实用程序。我想做的是将启动中的选择传递给任务,任务使用该选择。launch.json配置文件如下所示:

launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug: <Utility App>",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/apps/${input:utility}/${input:utility}",
            "args": ["--notimeout", "--pit"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}/apps/${input:utility}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "preLaunchTask": "make utility",
        },
    "inputs": [
        {
          "type": "pickString",
          "id": "utility",
          "description": "Which utility app do you want to run?",
          "options": [
            "utility_1",
            "utility_2",
            "utility_3",
            "utility_4",
          ]
        },
    ]
}
tasks.json
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "make utility",
            "type": "process",
            "command": "make",
            "args": [ "${input:BuildUtility}" ],
            "group": "build",
            "problemMatcher": "$gcc"
        },
    ],
    "inputs": [
        {
            "type": "pickString",
            "id": "BuildUtility",
            "description": "Which utility do you want to build?",
            "options": [
                "utility_1",
                "utility_2",
                "utility_3",
                "utility_4",
            ]
        }
    ]
}

如何通过preLaunchTask传递从launch所做的选择,以便任务使用该选择,从而有效地覆盖${input:BuildUtility},这样用户就不会被提升为对args字段进行选择?额外的好处是,如果没有向任务传递任何内容,任务仍然要求进行选择?谢谢。

在撰写本文时,这似乎不受支持。请求添加此功能。现在只需要等待,看看社区是否投票支持添加它。搜索了很多,最后在这里结束。我想@lordhog提到的功能请求是这样的:不幸的是,由于缺少投票,它被关闭了。因此似乎仍然不可能