From e2d3b01e9a4e392cdac162c7dd1e298bf5b51e11 Mon Sep 17 00:00:00 2001 From: unvalley Date: Thu, 17 Nov 2022 01:34:43 +0900 Subject: [PATCH 1/9] test: add long module named import snapshot test --- .../tests/specs/js/module/export/named_from_clause.js | 5 ++++- .../tests/specs/js/module/import/import_specifiers.js | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js b/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js index 168e7b60417..bfd2b3b65e3 100644 --- a/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js +++ b/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js @@ -15,4 +15,7 @@ export { loooooooooooooooooooooooooooooooooooooooooooooooooong, } from "looooooo export { // comment -loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" \ No newline at end of file +loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" + +export { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" +export { c as d } from "looooooooooooooooooooooooooooooooooooooooooooong" \ No newline at end of file diff --git a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js index e88fb5ce030..81da8153d16 100644 --- a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js +++ b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js @@ -25,4 +25,7 @@ import { loooooooooooooooooooooooooooooooooooooooooooooooooong, } from "looooooo import { // comment -loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" \ No newline at end of file +loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" + +import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" +import { c as d } from "looooooooooooooooooooooooooooooooooooooooooooong" \ No newline at end of file From ee70ab979aea34989a0947532125379efacb1854 Mon Sep 17 00:00:00 2001 From: unvalley Date: Thu, 17 Nov 2022 01:50:16 +0900 Subject: [PATCH 2/9] test: update snapshot tests --- .../tests/specs/js/module/export/named_from_clause.js | 3 +-- .../tests/specs/js/module/export/named_from_clause.js.snap | 5 +++++ .../tests/specs/js/module/import/import_specifiers.js | 3 +-- .../tests/specs/js/module/import/import_specifiers.js.snap | 5 +++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js b/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js index bfd2b3b65e3..a8f3ac2e077 100644 --- a/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js +++ b/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js @@ -17,5 +17,4 @@ export { // comment loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" -export { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" -export { c as d } from "looooooooooooooooooooooooooooooooooooooooooooong" \ No newline at end of file +export { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" \ No newline at end of file diff --git a/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js.snap b/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js.snap index 8ca6cd3dd94..d306bffd511 100644 --- a/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js.snap +++ b/crates/rome_js_formatter/tests/specs/js/module/export/named_from_clause.js.snap @@ -24,6 +24,8 @@ export { loooooooooooooooooooooooooooooooooooooooooooooooooong, } from "looooooo export { // comment loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" + +export { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" ``` @@ -64,11 +66,14 @@ export { loooooooooooooooooooooooooooooooooooooooooooooooooong, } from "loooooooooooooooooooooooooooooooooooooooooooooong"; +export { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; + ## Lines exceeding width of 80 characters 13: export { loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong"; 15: export { loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong"; + 22: export { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; ``` diff --git a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js index 81da8153d16..f1e11a87533 100644 --- a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js +++ b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js @@ -27,5 +27,4 @@ import { // comment loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" -import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" -import { c as d } from "looooooooooooooooooooooooooooooooooooooooooooong" \ No newline at end of file +import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" \ No newline at end of file diff --git a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap index d62d31d8621..93032d1ad20 100644 --- a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap +++ b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap @@ -34,6 +34,8 @@ import { loooooooooooooooooooooooooooooooooooooooooooooooooong, } from "looooooo import { // comment loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" + +import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" ``` @@ -90,11 +92,14 @@ import { loooooooooooooooooooooooooooooooooooooooooooooooooong, } from "loooooooooooooooooooooooooooooooooooooooooooooong"; +import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; + ## Lines exceeding width of 80 characters 29: import { loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong"; 31: import { loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong"; + 38: import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; ``` From 18d0ee1810d8ac85b71358ac276a98517194f7e9 Mon Sep 17 00:00:00 2001 From: unvalley Date: Thu, 17 Nov 2022 01:52:43 +0900 Subject: [PATCH 3/9] feat(rome_js_formatter): restrict import line break for single specifier --- .../src/js/module/named_import_specifiers.rs | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs index 9778e483b40..605be09e335 100644 --- a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs +++ b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs @@ -3,6 +3,7 @@ use crate::prelude::*; use rome_formatter::write; use rome_js_syntax::JsNamedImportSpecifiers; use rome_js_syntax::JsNamedImportSpecifiersFields; +use rome_rowan::AstSeparatedElement; #[derive(Debug, Clone, Default)] pub struct FormatJsNamedImportSpecifiers; @@ -17,16 +18,31 @@ impl FormatNodeRule for FormatJsNamedImportSpecifiers { write!(f, [l_curly_token.format()])?; - if specifiers.is_empty() { - write!( - f, - [format_dangling_comments(node.syntax()).with_soft_block_indent()] - )?; - } else { - write!( - f, - [group(&soft_space_or_block_indent(&specifiers.format()))] - )?; + match specifiers.elements().next() { + Some(AstSeparatedElement { + node: Ok(node), + trailing_separator: Ok(separator), + }) if specifiers.len() == 1 && !f.comments().has_comments(node.syntax()) => { + write!(f, [space(), node.format()])?; + + if let Some(separator) = separator { + write!(f, [format_removed(&separator)])?; + } + + write!(f, [space()])?; + } + Some(_) => { + write!( + f, + [group(&soft_space_or_block_indent(&specifiers.format()))] + )?; + } + None => { + write!( + f, + [format_dangling_comments(node.syntax()).with_soft_block_indent()] + )?; + } } write!(f, [r_curly_token.format()]) From 56cd32c1876ffa22231b258d03567ce0852e55bd Mon Sep 17 00:00:00 2001 From: unvalley Date: Tue, 22 Nov 2022 01:45:16 +0900 Subject: [PATCH 4/9] fix: handle JsNamedImportSpecifier --- .../src/js/module/import_named_clause.rs | 21 +++++++++++ .../src/js/module/named_import_specifiers.rs | 35 ++++++------------- 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/crates/rome_js_formatter/src/js/module/import_named_clause.rs b/crates/rome_js_formatter/src/js/module/import_named_clause.rs index 342c8834822..3ad37a56466 100644 --- a/crates/rome_js_formatter/src/js/module/import_named_clause.rs +++ b/crates/rome_js_formatter/src/js/module/import_named_clause.rs @@ -81,6 +81,27 @@ impl FormatNodeRule for FormatJsImportNamedClause { write!(f, [space(), r_curly_token.format()]) } } + ( + Ok(JsAnyNamedImportSpecifier::JsNamedImportSpecifier(specifier)), + Ok(separator), + ) => { + if f.comments().has_comments(specifier.syntax()) { + write!(f, [named_import.format()]) + } else { + let JsNamedImportSpecifiersFields { + l_curly_token, + specifiers: _, + r_curly_token, + } = specifiers.as_fields(); + write!(f, [l_curly_token.format(), space(), specifier.format(),])?; + + if let Some(separator) = separator { + format_removed(separator).fmt(f)?; + } + + write!(f, [space(), r_curly_token.format()]) + } + } _ => write![f, [named_import.format()]], } } diff --git a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs index 605be09e335..ef92f302f17 100644 --- a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs +++ b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs @@ -18,31 +18,16 @@ impl FormatNodeRule for FormatJsNamedImportSpecifiers { write!(f, [l_curly_token.format()])?; - match specifiers.elements().next() { - Some(AstSeparatedElement { - node: Ok(node), - trailing_separator: Ok(separator), - }) if specifiers.len() == 1 && !f.comments().has_comments(node.syntax()) => { - write!(f, [space(), node.format()])?; - - if let Some(separator) = separator { - write!(f, [format_removed(&separator)])?; - } - - write!(f, [space()])?; - } - Some(_) => { - write!( - f, - [group(&soft_space_or_block_indent(&specifiers.format()))] - )?; - } - None => { - write!( - f, - [format_dangling_comments(node.syntax()).with_soft_block_indent()] - )?; - } + if specifiers.is_empty() { + write!( + f, + [format_dangling_comments(node.syntax()).with_soft_block_indent()] + )?; + } else { + write!( + f, + [group(&soft_space_or_block_indent(&specifiers.format()))] + )?; } write!(f, [r_curly_token.format()]) From 8aa12356b95997ca965262f0b763a59d17ade17f Mon Sep 17 00:00:00 2001 From: unvalley Date: Tue, 22 Nov 2022 01:46:10 +0900 Subject: [PATCH 5/9] chore: restore waste chagne --- .../rome_js_formatter/src/js/module/named_import_specifiers.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs index ef92f302f17..9778e483b40 100644 --- a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs +++ b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use rome_formatter::write; use rome_js_syntax::JsNamedImportSpecifiers; use rome_js_syntax::JsNamedImportSpecifiersFields; -use rome_rowan::AstSeparatedElement; #[derive(Debug, Clone, Default)] pub struct FormatJsNamedImportSpecifiers; From 75e6f921df0b6fe5ab4c18c46e9010aaf56bc98a Mon Sep 17 00:00:00 2001 From: unvalley Date: Tue, 22 Nov 2022 23:02:58 +0900 Subject: [PATCH 6/9] fix: handle trailing comma for single specifier with default import --- .../src/js/module/named_import_specifiers.rs | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs index 9778e483b40..083e7f8b06d 100644 --- a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs +++ b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs @@ -3,6 +3,7 @@ use crate::prelude::*; use rome_formatter::write; use rome_js_syntax::JsNamedImportSpecifiers; use rome_js_syntax::JsNamedImportSpecifiersFields; +use rome_rowan::AstSeparatedElement; #[derive(Debug, Clone, Default)] pub struct FormatJsNamedImportSpecifiers; @@ -17,16 +18,34 @@ impl FormatNodeRule for FormatJsNamedImportSpecifiers { write!(f, [l_curly_token.format()])?; - if specifiers.is_empty() { - write!( - f, - [format_dangling_comments(node.syntax()).with_soft_block_indent()] - )?; - } else { - write!( - f, - [group(&soft_space_or_block_indent(&specifiers.format()))] - )?; + match specifiers.elements().next() { + Some(AstSeparatedElement { + node: Ok(node), + trailing_separator: Ok(separator), + }) if specifiers.len() == 1 && !f.comments().has_comments(node.syntax()) => { + write!( + f, + [space(), group(&soft_space_or_block_indent(&node.format()))] + )?; + + if let Some(separator) = separator { + write!(f, [format_removed(&separator)])?; + } + + write!(f, [space()])?; + } + Some(_) => { + write!( + f, + [group(&soft_space_or_block_indent(&specifiers.format()))] + )?; + } + None => { + write!( + f, + [format_dangling_comments(node.syntax()).with_soft_block_indent()] + )?; + } } write!(f, [r_curly_token.format()]) From a642d6d0d3adb0979e9fb56825987efa5b8d1196 Mon Sep 17 00:00:00 2001 From: unvalley Date: Tue, 22 Nov 2022 23:03:23 +0900 Subject: [PATCH 7/9] test: update import_specifiers snapshot --- .../tests/specs/js/module/import/import_specifiers.js | 4 +++- .../tests/specs/js/module/import/import_specifiers.js.snap | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js index f1e11a87533..d2223d44ec3 100644 --- a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js +++ b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js @@ -27,4 +27,6 @@ import { // comment loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" -import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" \ No newline at end of file +import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" + +import a, { loooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooooonnoong" diff --git a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap index 93032d1ad20..49007a25c93 100644 --- a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap +++ b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap @@ -36,6 +36,9 @@ import { loooooooooooooooooooooooooooooooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooong" import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong" + +import a, { loooooooooooooooooooooong } from "loooooooooooooooooooooooooooooooooooooooooooooooonnoong" + ``` @@ -94,6 +97,10 @@ import { import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; +import a, { + loooooooooooooooooooooong +} from "loooooooooooooooooooooooooooooooooooooooooooooooonnoong"; + ## Lines exceeding width of 80 characters From dc77497e4e6eaf2c29d52a347bf62b106f7ff4ee Mon Sep 17 00:00:00 2001 From: unvalley Date: Tue, 22 Nov 2022 23:15:54 +0900 Subject: [PATCH 8/9] test: update prettier_test snapshot --- .../specs/prettier/js/import/inline.js.snap | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 crates/rome_js_formatter/tests/specs/prettier/js/import/inline.js.snap diff --git a/crates/rome_js_formatter/tests/specs/prettier/js/import/inline.js.snap b/crates/rome_js_formatter/tests/specs/prettier/js/import/inline.js.snap new file mode 100644 index 00000000000..9c1aa74a00e --- /dev/null +++ b/crates/rome_js_formatter/tests/specs/prettier/js/import/inline.js.snap @@ -0,0 +1,53 @@ +--- +source: crates/rome_js_formatter/tests/prettier_tests.rs +info: + test_file: js/import/inline.js +--- + +# Input + +```js +import somethingSuperLongsomethingSuperLong from 'somethingSuperLongsomethingSuperLongsomethingSuperLong' +import {somethingSuperLongsomethingSuperLong1} from 'somethingSuperLongsomethingSuperLongsomethingSuperLong' +import a, {somethingSuperLongsomethingSuperLong2} from 'somethingSuperLongsomethingSuperLongsomethingSuperLong' +import {a2, somethingSuperLongsomethingSuperLong3} from 'somethingSuperLongsomethingSuperLongsomethingSuperLong' +``` + + +# Prettier differences + +```diff +--- Prettier ++++ Rome +@@ -1,7 +1,7 @@ + import somethingSuperLongsomethingSuperLong from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; + import { somethingSuperLongsomethingSuperLong1 } from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; + import a, { +- somethingSuperLongsomethingSuperLong2, ++ somethingSuperLongsomethingSuperLong2 + } from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; + import { + a2, +``` + +# Output + +```js +import somethingSuperLongsomethingSuperLong from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; +import { somethingSuperLongsomethingSuperLong1 } from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; +import a, { + somethingSuperLongsomethingSuperLong2 +} from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; +import { + a2, + somethingSuperLongsomethingSuperLong3, +} from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; +``` + + +# Lines exceeding max width of 80 characters +``` + 1: import somethingSuperLongsomethingSuperLong from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; + 2: import { somethingSuperLongsomethingSuperLong1 } from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; +``` + From 716976fcd96521a5d604f55aa80c79605ebc078c Mon Sep 17 00:00:00 2001 From: unvalley Date: Tue, 22 Nov 2022 23:35:39 +0900 Subject: [PATCH 9/9] fix: restore waste change for named_import_specifiers --- .../src/js/module/named_import_specifiers.rs | 39 ++++---------- .../module/import/import_specifiers.js.snap | 2 +- .../specs/prettier/js/import/inline.js.snap | 53 ------------------- 3 files changed, 11 insertions(+), 83 deletions(-) delete mode 100644 crates/rome_js_formatter/tests/specs/prettier/js/import/inline.js.snap diff --git a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs index 083e7f8b06d..9778e483b40 100644 --- a/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs +++ b/crates/rome_js_formatter/src/js/module/named_import_specifiers.rs @@ -3,7 +3,6 @@ use crate::prelude::*; use rome_formatter::write; use rome_js_syntax::JsNamedImportSpecifiers; use rome_js_syntax::JsNamedImportSpecifiersFields; -use rome_rowan::AstSeparatedElement; #[derive(Debug, Clone, Default)] pub struct FormatJsNamedImportSpecifiers; @@ -18,34 +17,16 @@ impl FormatNodeRule for FormatJsNamedImportSpecifiers { write!(f, [l_curly_token.format()])?; - match specifiers.elements().next() { - Some(AstSeparatedElement { - node: Ok(node), - trailing_separator: Ok(separator), - }) if specifiers.len() == 1 && !f.comments().has_comments(node.syntax()) => { - write!( - f, - [space(), group(&soft_space_or_block_indent(&node.format()))] - )?; - - if let Some(separator) = separator { - write!(f, [format_removed(&separator)])?; - } - - write!(f, [space()])?; - } - Some(_) => { - write!( - f, - [group(&soft_space_or_block_indent(&specifiers.format()))] - )?; - } - None => { - write!( - f, - [format_dangling_comments(node.syntax()).with_soft_block_indent()] - )?; - } + if specifiers.is_empty() { + write!( + f, + [format_dangling_comments(node.syntax()).with_soft_block_indent()] + )?; + } else { + write!( + f, + [group(&soft_space_or_block_indent(&specifiers.format()))] + )?; } write!(f, [r_curly_token.format()]) diff --git a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap index 49007a25c93..3a8a4ed9c49 100644 --- a/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap +++ b/crates/rome_js_formatter/tests/specs/js/module/import/import_specifiers.js.snap @@ -98,7 +98,7 @@ import { import { a as b } from "loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"; import a, { - loooooooooooooooooooooong + loooooooooooooooooooooong, } from "loooooooooooooooooooooooooooooooooooooooooooooooonnoong"; diff --git a/crates/rome_js_formatter/tests/specs/prettier/js/import/inline.js.snap b/crates/rome_js_formatter/tests/specs/prettier/js/import/inline.js.snap deleted file mode 100644 index 9c1aa74a00e..00000000000 --- a/crates/rome_js_formatter/tests/specs/prettier/js/import/inline.js.snap +++ /dev/null @@ -1,53 +0,0 @@ ---- -source: crates/rome_js_formatter/tests/prettier_tests.rs -info: - test_file: js/import/inline.js ---- - -# Input - -```js -import somethingSuperLongsomethingSuperLong from 'somethingSuperLongsomethingSuperLongsomethingSuperLong' -import {somethingSuperLongsomethingSuperLong1} from 'somethingSuperLongsomethingSuperLongsomethingSuperLong' -import a, {somethingSuperLongsomethingSuperLong2} from 'somethingSuperLongsomethingSuperLongsomethingSuperLong' -import {a2, somethingSuperLongsomethingSuperLong3} from 'somethingSuperLongsomethingSuperLongsomethingSuperLong' -``` - - -# Prettier differences - -```diff ---- Prettier -+++ Rome -@@ -1,7 +1,7 @@ - import somethingSuperLongsomethingSuperLong from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; - import { somethingSuperLongsomethingSuperLong1 } from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; - import a, { -- somethingSuperLongsomethingSuperLong2, -+ somethingSuperLongsomethingSuperLong2 - } from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; - import { - a2, -``` - -# Output - -```js -import somethingSuperLongsomethingSuperLong from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; -import { somethingSuperLongsomethingSuperLong1 } from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; -import a, { - somethingSuperLongsomethingSuperLong2 -} from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; -import { - a2, - somethingSuperLongsomethingSuperLong3, -} from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; -``` - - -# Lines exceeding max width of 80 characters -``` - 1: import somethingSuperLongsomethingSuperLong from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; - 2: import { somethingSuperLongsomethingSuperLong1 } from "somethingSuperLongsomethingSuperLongsomethingSuperLong"; -``` -