Skip to content

Commit 543a610

Browse files
committed
fix: handle pre tag jsx parent parens
Closes #425
1 parent 40e848e commit 543a610

File tree

2 files changed

+42
-12
lines changed

2 files changed

+42
-12
lines changed

src/generation/generate.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3452,19 +3452,19 @@ fn gen_jsx_element<'a>(node: &'a JSXElement, context: &mut Context<'a>) -> Print
34523452
let in_between_range = SourceRange::new(node.opening.end(), closing.start());
34533453
items.extend(ir_helpers::gen_from_raw_string_trim_line_ends(in_between_range.text_fast(context.program)));
34543454
items.extend(gen_node(closing.into(), context));
3455-
return items;
3455+
items
3456+
} else {
3457+
let result = gen_jsx_with_opening_and_closing(
3458+
GenJsxWithOpeningAndClosingOptions {
3459+
opening_element: node.opening.into(),
3460+
closing_element: closing.into(),
3461+
children: node.children.iter().map(|x| x.into()).collect(),
3462+
},
3463+
context,
3464+
);
3465+
context.store_info_range_for_node(node, (result.start_ln, result.end_ln));
3466+
result.items
34563467
}
3457-
3458-
let result = gen_jsx_with_opening_and_closing(
3459-
GenJsxWithOpeningAndClosingOptions {
3460-
opening_element: node.opening.into(),
3461-
closing_element: closing.into(),
3462-
children: node.children.iter().map(|x| x.into()).collect(),
3463-
},
3464-
context,
3465-
);
3466-
context.store_info_range_for_node(node, (result.start_ln, result.end_ln));
3467-
result.items
34683468
} else {
34693469
let start_ln = LineNumber::new("jsxElementStart");
34703470
let end_ln = LineNumber::new("jsxElementEnd");

tests/specs/issues/issue0425.txt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
~~ deno: true ~~
2+
== should handle parens wrapping in pre tags ==
3+
function Example() {
4+
return (
5+
<pre>
6+
Hello
7+
</pre>
8+
);
9+
}
10+
function Example() {
11+
return <pre>
12+
Hello
13+
</pre>;
14+
}
15+
16+
[expect]
17+
function Example() {
18+
return (
19+
<pre>
20+
Hello
21+
</pre>
22+
);
23+
}
24+
function Example() {
25+
return (
26+
<pre>
27+
Hello
28+
</pre>
29+
);
30+
}

0 commit comments

Comments
 (0)