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

Typst grammar bug leaves string scope unclosed, breaking highlighting in code blocks and `.typ` files

Abierto
#1,072 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
vscode
Área
devtools, tooling

Línea de trabajo

Start with Quarto's Typst TextMate grammar and reproduce the leak in the supplied test.qmd example and a standalone test.typ file with the Quarto extension enabled. Determine how strings containing # inside #context are scoped and how the grammar is injected into source.typst. Done means the closing quote ends the string scope and standalone Typst highlighting no longer conflicts with native tooling.

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

Descripción

bug
Bug description

Quarto's Typst TextMate grammar has a parsing bug: it fails to recognize the closing quote of a string if it contains a # inside a #context block.

Impact on standalone .typ files:
Because Quarto injects this grammar globally into source.typst, this exact same bug completely breaks the syntax highlighting for standalone .typ files as well, overriding dedicated extensions like Tinymist.

Steps to reproduce
  1. Create a test.qmd file.
  2. Paste the following code:
```typst
#context {
  let c = rgb("#8C6A48")
}

= Heading
Text
```

(Note: The exact same issue can be reproduced in a standalone test.typ file with the Quarto extension enabled.)

Actual behavior

Everything after "#8C6A48" (including = Heading and Text) is incorrectly highlighted as a string because the scope never closes.

Inside a .qmd file, the markdown code fence barely contains the leak. However, in a standalone .typ file (which has no markdown fences), this single bug breaks the syntax highlighting for the entire rest of the file down to EOF.

Expected behavior
  1. The Typst grammar should correctly recognize the closing quote of strings containing # and close the string scope.
  2. Quarto's Typst grammar injection should ideally be restricted to .qmd/.md files, or there should be an opt-out setting for standalone .typ files to prevent global conflicts with native Typst tooling.
Your environment
  • IDE: VSCode v1.130.0
  • Quarto Extension: v1.135.0
  • Tinymist Extension: v0.15.2
  • OS: Windows 11
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.