web-dev-qa-db-ja.com

Visual Studio Codeでタスクに引数を渡すことは可能ですか?

これが私のtasks.jsonの例です:

{
  "version": "0.1.0",
  "tasks": [
    {
      "taskName": "test",
      "suppressTaskName": true,
      "command": "python",
      "args": [
        "tests/brewer_tests.py"
      ],
      "isTestCommand": true
    }
  ]
}

shift+cmd+alt+bでこれを実行できます。 alt+tで実行して、メニューから選択することもできます。そのメニューで追加の引数を渡すことは可能ですか?例えば enter image description here

そして、次のようにタスクに組み込むことができます。

{
  "version": "0.1.0",
  "tasks": [
    {
      "taskName": "test",
      "suppressTaskName": true,
      "command": "python",
      "args": [
        "tests/brewer_tests.py",
        $arg1                        # would resolve to "ARG1"
      ],
      "isTestCommand": true
    }
  ]
}

または似たようなものですか?

19
Luke Sweeney

この回答 のソリューションを今まで使用しましたが、Visual Studio Codeには タスクプロンプトの公式サポート があるため、ここに回答として追加します。

Tasks.jsonファイルで、inputsの隣にキーtasksを追加します。このキーには、可能なすべてのパラメーターを持つ配列が含まれています。すべてのタスクがこれらの入力のすべてを使用する必要があるわけではないことに注意してください。
これらの入力にはすべてidがあり、これを使用してタスクの入力を参照します。
今、タスクに追加する必要があるのは${input:myInputId}パラメータが必要な場所。

例:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Echo param",
            "type": "Shell",
            "command": "echo ${input:param1}",
            "problemMatcher": []
        },
        {
            "label": "Echo without param",
            "type": "Shell",
            "command": "echo Hello",
            "problemMatcher": []
        },
    ],
    "inputs": [
        {
            "id": "param1",
            "description": "Param1:",
            "default": "Hello",
            "type": "promptString"
        },
    ]
}

タスク Echo paramはプロンプトを開き、文字列値を入力してこの値を出力します。タスク Echo without paramは、単に「Hello」と出力します。

16
Springrbua

これが今のところ私のために働いているものです-これを使用して、カスタム引数でgolangスニペットを実行します。これにキーボードマッピングを追加する場合、プロセスは非常に簡単です。

これまでのところ、これはWindowsでのみテストされています。そのため、Linuxバージョンはコメント化されています

{
        "label": "runwithargs",
        "type": "Shell",
        "windows": {
            "options": {
                "Shell": {
                    "executable": "powershell.exe",
                    "args": [
                        "-NoProfile",
                        "-ExecutionPolicy",
                        "Bypass",
                        "-Command"
                    ]
                }
            },
            "command": "",
            "args": [
                { "value": "$cmdargs = read-Host 'Enter command line arguments';", "quoting": "weak"},
                { "value": "go run ${file} $cmdargs", "quoting": "weak"}
            ]
        },
        /*"linux": {
            "command": "echo 'Enter command line arguments: '; read cmdargs;",
            "args": [ "go run ${file} $cmdargs" ]                
        },*/          
        "presentation": {
            "panel": "dedicated",
            "focus": true
        }
    }
4
bushed