* fix(autofmt): add support for handling comments in various expression types * fmt
107 lines
2.4 KiB
Rust
107 lines
2.4 KiB
Rust
#![allow(deprecated)]
|
|
|
|
macro_rules! twoway {
|
|
(
|
|
$(
|
|
|
|
// doc attrs
|
|
$( #[doc = $doc:expr] )*
|
|
$name:ident,
|
|
)*
|
|
) => {
|
|
$(
|
|
$( #[doc = $doc] )*
|
|
#[test]
|
|
fn $name() {
|
|
let src = include_str!(concat!("./samples/", stringify!($name), ".rsx"));
|
|
let formatted = dioxus_autofmt::fmt_file(src, Default::default());
|
|
let out = dioxus_autofmt::apply_formats(src, formatted);
|
|
// normalize line endings
|
|
let out = out.replace("\r", "");
|
|
let src = src.replace("\r", "");
|
|
pretty_assertions::assert_eq!(&src, &out);
|
|
}
|
|
)*
|
|
};
|
|
}
|
|
twoway![
|
|
attributes,
|
|
basic_expr,
|
|
collapse_expr,
|
|
comments_attr_expr_blocks,
|
|
comments,
|
|
comments_async_closure,
|
|
comments_expr_with_strings,
|
|
comments_nested_closures,
|
|
commentshard,
|
|
complex,
|
|
docsite,
|
|
emoji,
|
|
fat_exprs,
|
|
ifchain_forloop,
|
|
immediate_expr,
|
|
key,
|
|
letsome,
|
|
long_exprs,
|
|
long,
|
|
manual_props,
|
|
many_exprs,
|
|
messy_indent,
|
|
misplaced,
|
|
multirsx,
|
|
nested,
|
|
raw_strings,
|
|
reallylong,
|
|
shorthand,
|
|
simple,
|
|
skip,
|
|
spaces,
|
|
staged,
|
|
t2,
|
|
tiny,
|
|
tinynoopt,
|
|
trailing_expr,
|
|
oneline,
|
|
prop_rsx,
|
|
asset,
|
|
collapse,
|
|
expr_on_conditional,
|
|
blank_lines,
|
|
blank_lines_preserved,
|
|
forloop_tuple,
|
|
];
|
|
|
|
fn assert_idempotent(src: &str) {
|
|
let src = src.replace("\r", "");
|
|
|
|
let once =
|
|
dioxus_autofmt::apply_formats(&src, dioxus_autofmt::fmt_file(&src, Default::default()))
|
|
.replace("\r", "");
|
|
let twice =
|
|
dioxus_autofmt::apply_formats(&once, dioxus_autofmt::fmt_file(&once, Default::default()))
|
|
.replace("\r", "");
|
|
|
|
pretty_assertions::assert_eq!(src, once);
|
|
pretty_assertions::assert_eq!(once, twice);
|
|
}
|
|
|
|
#[test]
|
|
fn comments_async_closure_is_idempotent() {
|
|
assert_idempotent(include_str!("./samples/comments_async_closure.rsx"));
|
|
}
|
|
|
|
#[test]
|
|
fn comments_nested_closures_is_idempotent() {
|
|
assert_idempotent(include_str!("./samples/comments_nested_closures.rsx"));
|
|
}
|
|
|
|
#[test]
|
|
fn comments_attr_expr_blocks_is_idempotent() {
|
|
assert_idempotent(include_str!("./samples/comments_attr_expr_blocks.rsx"));
|
|
}
|
|
|
|
#[test]
|
|
fn comments_expr_with_strings_is_idempotent() {
|
|
assert_idempotent(include_str!("./samples/comments_expr_with_strings.rsx"));
|
|
}
|