Workspace tasks#
Conda Code implements a native VS Code task provider for tasks declared in conda-workspaces manifests.
Discovery scope#
Tasks are discovered only from the workspace manifest selected by Workspace discovery for a Python project registered with Python Environments. A matching file elsewhere in the VS Code window is not a task source. Task-only manifests are not included.
The Pixi Code coexistence rule applies before task discovery. When Pixi Code is
installed, Conda Code skips every pixi.toml and every pyproject.toml project
with a [tool.pixi] table, including its tasks.
For each selected manifest, Conda Code runs:
conda task --file /path/to/manifest list --json
Conda Code publishes project tasks returned by conda-workspaces. It omits
user-level tasks marked with source: "user" so they are not repeated for
every project. Conda Code does not parse the manifest’s task tables.
VS Code task definition#
The task type is conda-workspace. Its definition has two required string
properties:
Property |
Meaning |
|---|---|
|
Declared conda-workspaces task name |
|
Workspace-folder-relative manifest path |
Discovered tasks use conda-workspaces as their VS Code source.
Execution#
When a Conda Code workspace environment is selected for the same manifest, Conda Code delegates execution to:
conda task --file /path/to/manifest run --environment=ENVIRONMENT -- TASK
Otherwise it leaves environment selection to conda-workspaces:
conda task --file /path/to/manifest run -- TASK
Conda Code resolves the definition’s file value against its VS Code workspace
folder and passes the absolute path to conda. The -- separator keeps task
names from being interpreted as command options.
VS Code supplies the task UI and terminal. conda-workspaces handles dependency ordering, task and dependency environment overrides, platform overrides, variables, caching, and the task command itself. Without a matching VS Code selection, conda-workspaces uses the task’s declared environment or the workspace default.
Conda Code does not edit task definitions and does not add task arguments.
Refresh#
Saving conda.toml, pixi.toml, or pyproject.toml invalidates task
discovery. Running Conda Code: Refresh Environments also invalidates it.