github / github/vscode-github-actions

Squiggle should only cover the subexpression most closely related to a problem

未關閉
#449 0 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
TypeScript
星號
660
分支
213
PR 合併指標
30 天內沒有已合併 PR

描述

Type: Bug

consider this incomplete expression:
```yaml
something: >-
${{ 'alpine' }}
${{ (github.event_name == 'push') && (github.ref_name == github.event.repository. && format('{0}/{1}:latest', env.repository, env.image) || '' }}
```

there is more than one `${{ ... }}` and more than one `&&` in the value for `something`.

The system is nice enough not to stick squiggles under the entirety of the value of `something`, but it does stick them under the entirety of the second `${{ ... }}`.

It would be nicer if it only put them around `github.event.repository. &&` or even `repository. &&` which is the portion of the expression that's closest to the unhappy item.

```yaml
Unexpected symbol: '&&'
Available expression contexts: github, inputs, vars, needs, strategy, matrix, secrets, steps, job, runner, env

Available expression functions: hashFiles
View Problem
```

The worst pat of the current behavior is that `View Problem points the user to the beginning of the `${{` saying:
```
Unexpected symbol: '&&'
```

Which is actually closest to the _first_ `&&` which is not the problematic one.

Extension version: 0.27.1
VS Code version: Code 1.98.0 (Universal) (6609ac3d66f4eade5cf376d1cb76f13985724bcb, 2025-03-04T21:06:18.612Z)
OS version: Darwin arm64 24.3.0
Modes:

System Info

|Item|Value|
|---|---|
|CPUs|Apple M1 Max (10 x 2400)|
|GPU Status|2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
webgl: enabled
webgl2: enabled
webgpu: enabled
webnn: disabled_off|
|Load (avg)|6, 7, 7|
|Memory (System)|64.00GB (0.10GB free)|
|Process Argv|--crash-reporter-id 1fc67ee2-0174-4598-9f98-4537df0dd32c|
|Screen Reader|no|
|VM|0%|

A/B Experiments

```
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
vscod805cf:30301675
binariesv615:30325510
py29gd2263:31024239
c4g48928:30535728
azure-dev_surveyone:30548225
vscrp:30673768
962ge761:30959799
h48ei257:31000450
pythontbext0:30879054
cppperfnew:31000557
dwnewjupytercf:31046870
nativerepl2:31139839
pythonrstrctxt:31112756
nativeloc2:31192216
iacca1:31171482
5fd0e150:31155592
dwcopilot:31170013
6074i472:31201624
dwoutputs:31242946
customenabled:31248079
5a9hg449:31230677
hdaa2157:31222309
copilot_t_ci:31222730
968h8231:31253945
jda6j935:31233686

```

貢獻指南

開啟貢獻指南

研究方向

使用報告中的不完整 YAML 表達式,在 GitHub Actions VS Code extension 中重現該診斷,然後追蹤計算波浪線範圍和 View Problem 位置的程式碼。完成標準是:診斷僅突顯距離無效符號最近的子表達式,而不是整個 `${{ ... }}` 表達式,同時保留回報的訊息。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
github-actions, typescript, vscode
領域
developer-experience, devtools
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。