Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#1,072 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
vscode
領域
devtools, tooling

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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
主要言語
TypeScript
スター
655
フォーク
64
平均マージ
8時間 45分
マージ済み PR(30日)
36

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

quarto-dev/quarto のほかの issue

quarto-dev/quarto の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。