From fd432e234691cfc660028f4873eef9c3bf70acee Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Wed, 25 Mar 2020 17:24:26 -0400 Subject: [PATCH] upgrade: dprint 0.9.5 (#4491) --- Cargo.lock | 13 +++++----- cli/Cargo.toml | 2 +- cli/fmt.rs | 65 +++++++++++++++++++++++++------------------------- 3 files changed, 41 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c42b86cf..cdf06abc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -552,24 +552,25 @@ checksum = "52ba6eb47c2131e784a38b726eb54c1e1484904f013e576a25354d0124161af6" [[package]] name = "dprint-core" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d1aa8ea00ca5fb5a92278a6596b14b0f8336c3d0b6c6cbde4b46817dcd2ed0" +checksum = "8fb2332f10c6acf94b5d469ed993cf52ed7a1369b80523fb9cb21fa10c6b6887" dependencies = [ "serde", ] [[package]] name = "dprint-plugin-typescript" -version = "0.8.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dcf2ac362cb71dac70767cd23fba63063fb47bdb84ccef8b42ba03e17c0451d" +checksum = "b40a2ed665c9cb3192b689bcfc6934a1dbe16009e363c84b6db19ce1c36ef274" dependencies = [ "dprint-core", "serde", "swc_common", "swc_ecma_ast", "swc_ecma_parser", + "swc_ecma_parser_macros", ] [[package]] @@ -2207,9 +2208,9 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.21.5" +version = "0.21.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9519ab89ac37f65eb7d58f892f89aaa4dc64979b660a029025dbb9ee2a2b2903" +checksum = "701e681b7783c5b9d3df9e18592494ca3cba7a2fa8fc98d4d4f423ae993df155" dependencies = [ "either", "enum_kind", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index c7a2fbf7..1a7a8db8 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -33,7 +33,7 @@ byteorder = "1.3.4" clap = "2.33.0" dirs = "2.0.2" dlopen = "0.1.8" -dprint-plugin-typescript = "0.8.1" +dprint-plugin-typescript = "0.9.5" futures = { version = "0.3.4", features = ["compat", "io-compat"] } glob = "0.3.0" http = "0.2.0" diff --git a/cli/fmt.rs b/cli/fmt.rs index 8d2f982d..edfc2773 100644 --- a/cli/fmt.rs +++ b/cli/fmt.rs @@ -37,15 +37,23 @@ fn is_supported(path: &Path) -> bool { fn get_config() -> dprint::configuration::Configuration { use dprint::configuration::*; - ConfigurationBuilder::new() - .line_width(80) - .indent_width(2) - .next_control_flow_position(NextControlFlowPosition::SameLine) - .binary_expression_operator_position(OperatorPosition::SameLine) - .brace_position(BracePosition::SameLine) // default is NextLineIfHanging - .comment_line_force_space_after_slashes(false) - .construct_signature_space_after_new_keyword(true) - .build() + ConfigurationBuilder::new().prettier().build() +} + +// TODO(ry) dprint seems to panic unnecessarally sometimes. Until it matures +// we'll use a catch_unwind to avoid passing it on to our users. +fn format_text_ignore_panic( + file_path_str: &str, + file_contents: &str, + config: &dprint::configuration::Configuration, +) -> Result, String> { + let catch_result = std::panic::catch_unwind(|| { + dprint::format_text(file_path_str, file_contents, config) + }); + match catch_result { + Ok(dprint_result) => dprint_result, + Err(e) => Err(format!("dprint panic '{}' {:?}", file_path_str, e)), + } } fn check_source_files( @@ -57,7 +65,7 @@ fn check_source_files( for file_path in paths { let file_path_str = file_path.to_string_lossy(); let file_contents = fs::read_to_string(&file_path).unwrap(); - match dprint::format_text(&file_path_str, &file_contents, &config) { + match format_text_ignore_panic(&file_path_str, &file_contents, &config) { Ok(None) => { // nothing to format, pass } @@ -101,30 +109,23 @@ fn format_source_files( for file_path in paths { let file_path_str = file_path.to_string_lossy(); let file_contents = fs::read_to_string(&file_path)?; - // TODO(ry) dprint seems to panic unnecessarally sometimes. Until it matures - // we'll use a catch_unwind to avoid passing it on to our users. - let catch_unwind_result = std::panic::catch_unwind(|| { - dprint::format_text(&file_path_str, &file_contents, &config) - }); - if let Ok(dprint_result) = catch_unwind_result { - match dprint_result { - Ok(None) => { - // nothing to format, pass - } - Ok(Some(formatted_text)) => { - if formatted_text != file_contents { - println!("{}", file_path_str); - fs::write(&file_path, formatted_text)?; - not_formatted_files.push(file_path); - } - } - Err(e) => { - eprintln!("Error formatting: {}", &file_path_str); - eprintln!(" {}", e); + let dprint_result = + format_text_ignore_panic(&file_path_str, &file_contents, &config); + match dprint_result { + Ok(None) => { + // nothing to format, pass + } + Ok(Some(formatted_text)) => { + if formatted_text != file_contents { + println!("{}", file_path_str); + fs::write(&file_path, formatted_text)?; + not_formatted_files.push(file_path); } } - } else { - eprintln!("dprint panic {}", file_path_str); + Err(e) => { + eprintln!("Error formatting: {}", &file_path_str); + eprintln!(" {}", e); + } } } -- GitLab