fix emoji support in autofmt

This commit is contained in:
Jonathan Kelley committed 2023-01-12 16:29:31 -08:00
1 parent fd4eac3488
commit cc8b910cf3
4 files changed
+48 -36

No files matched your search

+6 -3
View File
@@ -71,8 +71,11 @@ pub fn fmt_file(contents: &str) -> Vec<FormattedBlock> {
};
let remaining = &contents[end - 1..];
let bracket_end = find_bracket_end(remaining).unwrap();
let sub_string = &contents[end..bracket_end + end - 1];
let sub_string = &remaining[1..bracket_end - 1];
last_bracket_end = bracket_end + end - 1;
let mut new = fmt_block(sub_string, indent_level).unwrap();
@@ -85,7 +88,7 @@ pub fn fmt_file(contents: &str) -> Vec<FormattedBlock> {
indent_level = 0;
}
let end_marker = end + bracket_end - indent_level * 4 - 1;
let end_marker = end + bracket_end - indent_level * 4 - 2;
if new == contents[end..end_marker] {
continue;
@@ -118,7 +121,7 @@ pub fn write_block_out(body: CallBody) -> Option<String> {
}
pub fn fmt_block(block: &str, indent_level: usize) -> Option<String> {
let body = syn::parse_str::<dioxus_rsx::CallBody>(block).ok()?;
let body = syn::parse_str::<dioxus_rsx::CallBody>(block).unwrap();
let mut buf = Writer {
src: block.lines().map(|f| f.to_string()).collect(),
+5 -2
View File
@@ -1,14 +1,17 @@
pub fn find_bracket_end(contents: &str) -> Option<usize> {
let mut depth = 0;
for (i, c) in contents.chars().enumerate() {
let mut len = 0;
for c in contents.chars() {
len += c.len_utf8();
if c == '{' {
depth += 1;
} else if c == '}' {
depth -= 1;
if depth == 0 {
return Some(i);
return Some(len);
}
}
}