Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

VS Code extension: `quarto preview` fails when the file path contains parentheses (path not shell-quoted)

Abierto Apto para principiantes
#1,194 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@Bondrewd-K ya está trabajando en esto.

Desde el 14/10/2026.

  • #1197 de @Bondrewd-K — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
powershell, typescript, vscode
Área
devtools

Línea de trabajo

Comienza en apps/vscode/src/core/terminal.ts, donde terminalCommand() envuelve el destino en shQuote(), y luego lee shQuote() en packages/core/src/strings.ts, que solo usa comillas dobles cuando el valor contiene espacios en blanco. Reproduce el problema pasando una ruta con paréntesis y sin espacios, y revisa la cadena de comando que se produce. Se considera terminado cuando esas rutas quedan entre comillas, las rutas con espacios y otros metacaracteres siguen funcionando y una prueba unitaria cubre el caso de los paréntesis.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug vscode

Bug
Previewing a file whose path contains parentheses but no spaces
(e.g. C:\...\Article(md)\doc.qmd) makes the extension emit:

quarto preview C:/.../Article(md)/doc.qmd --no-browser --no-watch-inputs

PowerShell parses (md) as a subexpression — md is the mkdir alias — so
the terminal stalls at:

cmdlet mkdir at command pipeline position 1
Supply values for the following parameters:
Path[0]:

Repro

  1. Windows, integrated terminal = PowerShell.
  2. Open a doc under a parens-containing, space-free directory.
  3. Quarto: Preview → hangs at the Path[0]: prompt, preview never starts.

Expected
Quote the path:

quarto preview "C:/.../Article(md)/doc.qmd" --no-browser --no-watch-inputs

Root cause

  • preview.ts builds the command via terminalCommand("preview", ctx, target);
    sendTerminalCommand() joins it with spaces straight into the terminal.
  • terminalCommand() (apps/vscode/src/core/terminal.ts) wraps the target in
    shQuote().
  • shQuote() (packages/core/src/strings.ts) only double-quotes on whitespace
    (/\s/). Parentheses — and other metacharacters like &, ;, $ —
    without whitespace pass through unquoted. Broken in PowerShell; equally
    broken in bash, where bare parens are a syntax error.

Suggested fix
Quote when the value contains any shell metacharacter, or simply always
double-quote the path.

Workaround
Set the workspace default terminal to Command Prompt, or invoke quarto
manually with a quoted path.

Lenguaje dominante
TypeScript
Estrellas
652
Forks
64
Merge medio
8 h 45 min
PR fusionados (30 d)
36

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de quarto-dev/quarto

Todos los issues de quarto-dev/quarto

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.