github / github/vscode-github-actions

double curly brace can have incorrect syntax highlighting inside format within expression

Aberta
#394 0 comentários 0 reações 0 responsáveis Ver no GitHub
bug
Linguagem predominante
TypeScript
Estrelas
660
Forks
213
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

**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**
image

**Extension Version**
`v0.26.5`

**Additional context**
I am testing this on Mac OS Sonoma 14.5
`code --version
1.91.1
f1e16e1e6214d7c44d078b1f0607b2388f29d729
x64`

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
typescript
Domínio
tooling
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.