VS Code extension: `quarto preview` fails when the file path contains parentheses (path not shell-quoted)
Los mantenedores suelen responder en 1 día
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
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
- Windows, integrated terminal = PowerShell.
- Open a doc under a parens-containing, space-free directory.
- 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.tsbuilds the command viaterminalCommand("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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de quarto-dev/quarto
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
quarto-dev/quarto#1139 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 90/100
quarto-dev/quarto#1138 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
quarto-dev/quarto#1137 ·
Los mantenedores suelen responder en 1 día
-
Add dependabot?Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
quarto-dev/quarto#1135 ·
Los mantenedores suelen responder en 1 día
-
AceNodeView: programmatic setSelection() marks the cursor dirty, scrolling the document to the front matterPosiblemente ocupada @kevinushey la tomó hace 53 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
quarto-dev/quarto#1099 ·
Los mantenedores suelen responder en 1 día
Todos los issues de quarto-dev/quarto
Issues similares
-
bug priority: P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
mattermost/compass-design#106 ·
Los mantenedores suelen responder en 1 día
-
clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
openclaw/openclaw#176671 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
nordcraftengine/nordcraft#1400 ·
Los mantenedores suelen responder en 1 día