Использование выбора «input» при запуске. json для использования в preLaunchTask в коде Visual Studio - PullRequest
0 голосов
/ 11 апреля 2020

В проекте есть несколько вспомогательных утилит. В файлах запуска и задач json они настроены так, чтобы пользователь мог выбрать конкретную утилиту для сборки или отладки. То, что я хотел бы сделать, это иметь выбор от запуска для передачи задачам, и задача использует этот выбор. Файл конфигурации запуска. 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",
          ]
        },
    ]
}

Файл конфигурации задач. json выглядит следующим образом:

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, чтобы задача использовала этот выбор, эффективно переопределяя "${input:BuildUtility}", чтобы пользователь не мог сделать выбор для поля "args"? Бонус будет иметь задачи по-прежнему просить выбор, если ничего не было передано ему? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...