Bug description
When quarto.path is explicitly configured, I expect the VS Code extension to invoke that executable, or at least preserve it as the effective Quarto command used by the extension and the integrated terminal.
However, the extension appears to use the configured executable only for discovery. It then resolves the underlying Quarto installation path, likely from quarto --paths, and prepends the resolved internal bin directory to the integrated terminal PATH.
This breaks installations where the configured Quarto executable is a launcher or trampoline, such as Quarto installed through pixi. In this setup, the launcher is not just a path alias: it is responsible for setting up the runtime environment required by Quarto. The internal Quarto script inside the Pixi environment is not intended to be executed directly.
Therefore, the issue is that quarto.path is not treated as the authoritative executable path. Instead, the extension rewrites the terminal environment in a way that bypasses the configured launcher.
Configuration
{
"quarto.usePipQuarto": false,
"quarto.path": "/home/***/.pixi/bin/quarto"
}
Steps to reproduce
- Install Quarto through Pixi, for example with:
pixi global install quarto
- Configure the VS Code extension to use the Pixi launcher:
{
"quarto.usePipQuarto": false,
"quarto.path": "/home/***/.pixi/bin/quarto"
}
-
Open VS Code / VS Code Remote with the Quarto extension enabled.
-
Check the integrated terminal PATH.
The extension prepends:
/home/***/.pixi/envs/quarto/bin
- Run:
which quarto
quarto check
Actual behavior
quarto resolves to:
/home/***/.pixi/envs/quarto/bin/quarto
Running quarto check then fails with:
/home/***/.pixi/envs/quarto/bin/quarto: line 208:
/home/***/.pixi/envs/quarto/bin/tools/x86_64/deno: No such file or directory
This happens because the command bypasses the Pixi launcher at:
/home/***/.pixi/bin/quarto
Expected behavior
When quarto.path is configured, the extension should treat that path as the authoritative Quarto executable.
In this case, commands should use:
/home/***/.pixi/bin/quarto
rather than resolving and prepending the internal Quarto installation directory.
At minimum, the extension should provide an option to disable automatic modification of the integrated terminal PATH.
Bug description
When
quarto.pathis explicitly configured, I expect the VS Code extension to invoke that executable, or at least preserve it as the effective Quarto command used by the extension and the integrated terminal.However, the extension appears to use the configured executable only for discovery. It then resolves the underlying Quarto installation path, likely from
quarto --paths, and prepends the resolved internalbindirectory to the integrated terminalPATH.This breaks installations where the configured Quarto executable is a launcher or trampoline, such as Quarto installed through
pixi. In this setup, the launcher is not just a path alias: it is responsible for setting up the runtime environment required by Quarto. The internal Quarto script inside the Pixi environment is not intended to be executed directly.Therefore, the issue is that
quarto.pathis not treated as the authoritative executable path. Instead, the extension rewrites the terminal environment in a way that bypasses the configured launcher.Configuration
{ "quarto.usePipQuarto": false, "quarto.path": "/home/***/.pixi/bin/quarto" }Steps to reproduce
{ "quarto.usePipQuarto": false, "quarto.path": "/home/***/.pixi/bin/quarto" }Open VS Code / VS Code Remote with the Quarto extension enabled.
Check the integrated terminal
PATH.The extension prepends:
/home/***/.pixi/envs/quarto/binActual behavior
quartoresolves to:/home/***/.pixi/envs/quarto/bin/quartoRunning
quarto checkthen fails with:This happens because the command bypasses the Pixi launcher at:
/home/***/.pixi/bin/quartoExpected behavior
When
quarto.pathis configured, the extension should treat that path as the authoritative Quarto executable.In this case, commands should use:
/home/***/.pixi/bin/quartorather than resolving and prepending the internal Quarto installation directory.
At minimum, the extension should provide an option to disable automatic modification of the integrated terminal
PATH.