From e73484795abbbf660ac16b7c771e8965d60bf759 Mon Sep 17 00:00:00 2001 From: opensource-inemar-net <65956766+opensource-inemar-net@users.noreply.github.com> Date: Sun, 28 Jul 2024 21:06:09 +0200 Subject: [PATCH] This fixes issue (#2724) --- packages/autofmt/src/lib.rs | 9 ++++++++- packages/autofmt/tests/wrong.rs | 1 + packages/autofmt/tests/wrong/syntax_error.rsx | 6 ++++++ packages/autofmt/tests/wrong/syntax_error.wrong.rsx | 6 ++++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 packages/autofmt/tests/wrong/syntax_error.rsx create mode 100644 packages/autofmt/tests/wrong/syntax_error.wrong.rsx diff --git a/packages/autofmt/src/lib.rs b/packages/autofmt/src/lib.rs index e95863368..a2e10d5cd 100644 --- a/packages/autofmt/src/lib.rs +++ b/packages/autofmt/src/lib.rs @@ -69,7 +69,14 @@ pub fn fmt_file(contents: &str, indent: IndentOptions) -> Vec { continue; } - let body = item.parse_body_with(CallBody::parse_strict).unwrap(); + let body = match item.parse_body_with(CallBody::parse_strict) { + Ok(v) => v, + //there is aparsing error, we give up and don't format the rsx + Err(e) => { + eprintln!("Error while parsing rsx {:?} ", e); + return formatted_blocks; + } + }; let rsx_start = macro_path.span().start(); diff --git a/packages/autofmt/tests/wrong.rs b/packages/autofmt/tests/wrong.rs index e2a99bbdb..8775840fc 100644 --- a/packages/autofmt/tests/wrong.rs +++ b/packages/autofmt/tests/wrong.rs @@ -30,3 +30,4 @@ twoway!("multiexpr-many" => multiexpr_many (IndentOptions::new(IndentType::Space twoway!("simple-combo-expr" => simple_combo_expr (IndentOptions::new(IndentType::Spaces, 4, false))); twoway!("oneline-expand" => online_expand (IndentOptions::new(IndentType::Spaces, 4, false))); twoway!("shortened" => shortened (IndentOptions::new(IndentType::Spaces, 4, false))); +twoway!("syntax_error" => syntax_error (IndentOptions::new(IndentType::Spaces, 4, false))); diff --git a/packages/autofmt/tests/wrong/syntax_error.rsx b/packages/autofmt/tests/wrong/syntax_error.rsx new file mode 100644 index 000000000..d203a19fc --- /dev/null +++ b/packages/autofmt/tests/wrong/syntax_error.rsx @@ -0,0 +1,6 @@ +fn app() -> Element { + rsx! { + let x="hello world"; + div { "hello world" } + } +} diff --git a/packages/autofmt/tests/wrong/syntax_error.wrong.rsx b/packages/autofmt/tests/wrong/syntax_error.wrong.rsx new file mode 100644 index 000000000..d203a19fc --- /dev/null +++ b/packages/autofmt/tests/wrong/syntax_error.wrong.rsx @@ -0,0 +1,6 @@ +fn app() -> Element { + rsx! { + let x="hello world"; + div { "hello world" } + } +}