ifconfig
ifconfig

Reputation: 6832

Build currently opened file in Visual Studio Code

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

Answers (2)

jdow
jdow

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

Rob Lourens
Rob Lourens

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

Related Questions