Reputation: 6832
I have a workspace that I use for smaller test programs I write to practice concepts. Hence, in VS Code, I have a build task for each file in the folder.
By default, VS Code builds the task with the "isDefault": true,
flag. Ideally, I would like to figure out a way for me to build the currently opened file, so that when I switch files I am editing, I do not need to manually reset the flag to the build task I want to use.
To my knowledge, the VS Code Tasks Documentation doen't provide a solution. There must be a way to accomplish this without manually adjusting the flag. Any help is appreciated.
Upvotes: 12
Views: 12810
Reputation: 316
To Build on Rob's Answer, you can also set a shortcut key combination to trigger each task by adding to keybindings.json
, e.g.
{
"key": "ctrl+h",
"command": "workbench.action.tasks.runTask",
"args": "Run tests"
}
where the args
component is replaced with the task name.
You could use this in combination with ${file}
in tasks.json
to differentiate between the separate build types.
e.g. hit Ctrl+h for python and Ctrl+Shift+h for tsc
Upvotes: 6
Reputation: 16099
You can use the ${file}
wildcard to pass the current file to your build program/script.
There's an example given in the docs for TS: https://code.visualstudio.com/Docs/editor/tasks#_operating-system-specific-properties
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"presentation": {
"panel": "new"
},
"tasks": [
{
"taskName": "TS - Compile current file",
"type": "shell",
"command": "tsc ${file}",
"problemMatcher": [
"$tsc"
]
}
]
}
Upvotes: 18