Commit ddc9fac
authored
fix(fmt): panic on tagged HTML template with multi-level indent (#34263)
`deno fmt` panics with `finish_indent was called without a corresponding
start_indent` when a tagged HTML/SVG template embeds content whose
formatted output transitions by more than one indent level between
adjacent lines. The minimal repro from #29963 is
```js
console.log(html`<a><svg viewBox="0 0 16 16" width="20" height="20" fill="currentColor">
<path d="" />
</svg></a>`);
```
`markup_fmt` produces lines at indent levels 0 → 2 → 1, and
`dprint-plugin-typescript`'s embedded-template path emitted only a
single `StartIndent`/`FinishIndent` per transition while its
end-of-template cleanup emitted one signal per remaining level, leaving
the dprint IR unbalanced.
The fix is in `dprint-plugin-typescript`
(dprint/dprint-plugin-typescript#783) and is consumed here by bumping
the pin to `=0.96.1`. A spec regression test in
`tests/specs/fmt/embedded_html_multi_indent` covers the case using the
exact input from the issue and asserts the expected formatted output.
Closes #29963
Closes #33623
Closes #31820
Closes #30276
Closes #309801 parent 42f609c commit ddc9fac
3 files changed
Lines changed: 13 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
362 | 362 | | |
363 | 363 | | |
364 | 364 | | |
365 | | - | |
| 365 | + | |
366 | 366 | | |
367 | 367 | | |
368 | 368 | | |
| |||
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
0 commit comments