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 摘要。