2017-10-16 8 views
0

新しいバージョンのVSCodeでは、tasks.jsonで定義したタスクにバインディングを作成できます。例えば、VSCode:JavaScript APIを使用して任意のタスクを実行するにはどうすればよいですか?

{ 
    "version": "2.0.0", 
    "tasks": [ 
    { 
     "label": "Clean", 
     "type": "shell", 
     "command": "clean.cmd", 
     "problemMatcher": [] 
    }, 
    { 
     "label": "Build", 
     "type": "shell", 
     "command": "build.cmd", 
     "problemMatcher": [], 
     "group": { "kind": "build", "isDefault": true } 
    }, 
    { 
     "label": "Flash", 
     "type": "shell", 
     "command": "flash.cmd", 
     "problemMatcher": [] 
    } 
    ] 
} 

以下の3つのタスクと私は

[ 
    { 
    "key": "alt+f9", 
    "command": "workbench.action.tasks.runTask", 
    "args": "Clean" 
    }, 
    { 
    "key": "ctrl+f9", 
    "command": "workbench.action.tasks.build" 
    }, 
    { 
    "key": "f9", 
    "command": "workbench.action.tasks.runTask", 
    "args": "Flash" 
    } 
] 

でキーバインディングを作成することができますし、すべてが期待どおりに動作します。 VSCode APIを使用して同じ内線番号(たとえばScript Commands)から同じことをしようとしていますが、これはbuildtestタスクでのみ機能します。

vscode.commands.executeCommand("workbench.action.tasks.runTask", ["Clean"]) 

呼び出す

vscode.commands.executeCommand("workbench.action.tasks.build") 

作品が、

は、タスクの選択リストを開きます。

JavaScriptコードを使用してbuildtest以外の他のタスクを直接開始するにはどうすればよいですか?

答えて

0

タスクの設定ファイルが古いようです。新しいバージョンのVisual Studioコードを使用している場合は、アップグレードする必要があります。

私は、タスクが「ラベル」フィールドを持つことを期待していると思います。

https://code.visualstudio.com/docs/editor/tasks#_convert-from-010-to-200

のそうintsead:あるべき

{ 
    "taskName": "Clean", 
    "type": "shell", 
    "command": "clean.cmd", 
    "problemMatcher": [] 
}, 

{ 
    "label": "Clean", 
    "type": "shell", 
    "command": "clean.cmd", 
    "problemMatcher": [] 
}, 

更新:代わりに、このような配列でそれを包むの単なる文字列でそれを起動してみてください。

vscode.commands.executeCommand("workbench.action.tasks.runTask", "Clean") 
+0

アップグレードしましたが、問題に影響しません.labelまたはtaskName(まだサポートされています)では、UIからタスクを実行できますが、JavaScript APIは使用できません。それでも、あなたの答えは私に質問を更新するように思い出させました。ありがとう。 – Borcut

関連する問題