github / github/vscode-github-actions
double curly brace can have incorrect syntax highlighting inside format within expression
- Lenguaje dominante
- TypeScript
- Estrellas
- 660
- Forks
- 213
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
**Describe the bug**
When a double closing curly brace (`}}` is used as an escape to represent a single closing curly brace (`}`) inside a format function that is within an expression, it gets incorrectly colored as the end of the expression.
**To Reproduce**
Steps to reproduce the behavior:
1. With the workflow file below, open in vscode editor
2. View the syntax highlighting as incorrect. The first double closing curly brace on line 19 should not be yellow.
```
name: Double Curly Brace Workflow
on:
workflow_dispatch:
inputs:
something-to-print:
description: Something to print in powershell.
required: true
type: string
jobs:
double_curly_brace_job:
runs-on:
labels: windows
steps:
- name: Double Curly Brace Step
env:
VAR_WITH_DOUBLE_CURLY_BRACE: "${{ format('{{ {0} }}', inputs.something-to-print) }}"
run: |
echo "${{ env.VAR_WITH_DOUBLE_CURLY_BRACE }}"
```
**Expected behavior**
The last double closing curly brace should be yellow on line 19.
**Screenshots**
**Extension Version**
`v0.26.5`
**Additional context**
I am testing this on Mac OS Sonoma 14.5
`code --version
1.91.1
f1e16e1e6214d7c44d078b1f0607b2388f29d729
x64`
Guía de contribución
Línea de trabajo
Start by reproducing the workflow in the VS Code editor and inspect how the extension highlights nested GitHub Actions expressions and format strings. Trace the syntax-highlighting entry point for expression parsing, then verify that the escaped double closing brace is not treated as the expression end while the final closing brace remains highlighted.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100