@@ -1033,10 +1033,16 @@ fn gen_export_named_decl<'a>(node: &NamedExport<'a>, context: &mut Context<'a>)
10331033 }
10341034
10351035 let force_single_line = context. config . export_declaration_force_single_line && !contains_line_or_multiline_comment ( node. into ( ) , context. program ) ;
1036+
1037+ let force_multi_line = !force_single_line
1038+ && ( ( context. config . export_declaration_force_multi_line == ForceMultiLine :: Always )
1039+ || ( named_exports. len ( ) > 1 && context. config . export_declaration_force_multi_line == ForceMultiLine :: OnlyWhenMultiple ) ) ;
1040+
10361041 let should_single_line = force_single_line
10371042 || ( default_export. is_none ( )
10381043 && namespace_export. is_none ( )
1039- && ( named_exports. len ( ) <= 1 && !context. config . export_declaration_force_multi_line )
1044+ && !force_multi_line
1045+ && ( named_exports. len ( ) <= 1 && context. config . export_declaration_force_multi_line == ForceMultiLine :: Never )
10401046 && node. start_line_fast ( context. program ) == node. end_line_fast ( context. program ) ) ;
10411047
10421048 // generate
@@ -1055,7 +1061,7 @@ fn gen_export_named_decl<'a>(node: &NamedExport<'a>, context: &mut Context<'a>)
10551061 parent : node. into ( ) ,
10561062 specifiers : named_exports. into_iter ( ) . map ( |x| x. into ( ) ) . collect ( ) ,
10571063 force_single_line,
1058- force_multi_line_specifiers : context . config . export_declaration_force_multi_line ,
1064+ force_multi_line_specifiers : force_multi_line ,
10591065 } ,
10601066 context,
10611067 ) ) ;
@@ -1218,11 +1224,17 @@ fn gen_import_decl<'a>(node: &ImportDecl<'a>, context: &mut Context<'a>) -> Prin
12181224 }
12191225
12201226 let force_single_line = context. config . import_declaration_force_single_line && !contains_line_or_multiline_comment ( node. into ( ) , context. program ) ;
1227+
1228+ let force_multi_line = context. config . import_declaration_force_multi_line == ForceMultiLine :: Always
1229+ || ( named_imports. len ( ) > 1 && context. config . import_declaration_force_multi_line == ForceMultiLine :: OnlyWhenMultiple ) ;
1230+
12211231 let should_single_line = force_single_line
12221232 || ( default_import. is_none ( )
12231233 && namespace_import. is_none ( )
1224- && ( named_imports. len ( ) <= 1 && !context. config . import_declaration_force_multi_line )
1234+ && !force_multi_line
1235+ && ( named_imports. len ( ) <= 1 && context. config . import_declaration_force_multi_line == ForceMultiLine :: Never )
12251236 && node. start_line_fast ( context. program ) == node. end_line_fast ( context. program ) ) ;
1237+
12261238 let has_named_imports = !named_imports. is_empty ( ) || {
12271239 let from_keyword = context. token_finder . get_previous_token_if_from_keyword ( node. src ) ;
12281240 if let Some ( from_keyword) = from_keyword {
@@ -1267,7 +1279,7 @@ fn gen_import_decl<'a>(node: &ImportDecl<'a>, context: &mut Context<'a>) -> Prin
12671279 parent : node. into ( ) ,
12681280 specifiers : named_imports. into_iter ( ) . map ( |x| x. into ( ) ) . collect ( ) ,
12691281 force_single_line,
1270- force_multi_line_specifiers : context . config . import_declaration_force_multi_line ,
1282+ force_multi_line_specifiers : force_multi_line ,
12711283 } ,
12721284 context,
12731285 ) ) ;
0 commit comments