[VS Code] Single-line display math ($$...$$) renders with literal dollar signs in "Quarto: Equation" assist preview
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todaví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
- typescript, vscode
- Área
- devtools
Línea de trabajo
El issue apunta a la extracción matemática de reserva de Quarto Language Server en apps/vscode / out/lsp/lsp.js. Lee el orden de coincidencia de las regex y comprueba cómo recibe texto extraído la vista previa de Equation assist; prueba el ejemplo de matemáticas en modo display de una sola línea del issue. Se considera terminado cuando las matemáticas en modo display aparecen en la vista previa sin signos de dólar y las matemáticas en línea siguen renderizándose correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug description
When the cursor is positioned on a single-line display math equation (e.g., $$ y = mx + q $$), the Quarto: Equation assist panel renders the equation with spurious literal dollar signs at both ends:
$y = mx + q$
In contrast, standard inline math on a single dollar delimiter (e.g., $y = mx + q$) renders cleanly without any dollar signs.
Steps to reproduce
- Open a
.qmddocument in VS Code with the Quarto extension installed and enabled. - Type a display math equation on a single line, for example:
$$ y + 0.900 = 9.638 x^{-1.394} $$ - Place the cursor anywhere within or on that line.
- Inspect the Quarto: Equation assist panel in the sidebar/panel.
Actual behavior
The equation preview in the Quarto: Equation panel renders with visible dollar symbols:
$y + 0.900 = 9.638 x^{-1.394}$
Expected behavior
The equation preview should render cleanly without leading or trailing dollar signs:
y + 0.900 = 9.638 x^{-1.394}
Your environment
vscode
ubuntu
Root Cause Analysis
In the Quarto Language Server (apps/vscode / out/lsp/lsp.js), the fallback math extraction function for the current line evaluates the inline math regex before the display math regex:
return findMatch(pos, line, inlineRegex) || findMatch(pos, line, displayRegex);
Where:
inlineRegex:/\$([^ ].*?[^ ]?)\$/gdisplayRegex:/\$\$([^\n]+?)\$\$/
When scanning a line containing single-line display math like $$ y + 0.900 = 9.638 x^{-1.394} $$:
- The inline regex (
inlineRegex) matches first. - The 1st
$satisfies the opening delimiter\$. - The 2nd
$(not being whitespace[^ ]) is treated as the start of the formula text group([^ ].*?[^ ]?). - The 3rd
$satisfies the closing delimiter\$. - The extracted string passed to the MathJax renderer is
$ y + 0.900 = 9.638 x^{-1.394} $. - MathJax renders the unstripped dollar signs as literal text.
Suggested Fix
- Evaluate
displayRegexbeforeinlineRegex:return findMatch(pos, line, displayRegex) || findMatch(pos, line, inlineRegex);
- Lenguaje dominante
- TypeScript
- Estrellas
- 655
- Forks
- 64
- Merge medio
- 20 h 53 min
- PR fusionados (30 d)
- 46
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
-
vscode
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
quarto-dev/quarto#934 · 1 comentario · 2 reacciones ·
Los mantenedores suelen responder en 1 día
Todos los issues de quarto-dev/quarto
Issues similares
-
freshness freshness:observed-only
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
thoroc/context-radar#282 ·
-
bug P2 rust
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
area: web
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
gabe-santana/arkdraw#25 ·
-
bug require-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
expressjs/expressjs.com#2549 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug good first issue hacktoberfest
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
codercops/discord-bot#101 · 1 comentario ·
Los mantenedores suelen responder en 1 día