@@ -61,6 +61,10 @@ pub struct FormatOptions<'a> {
61
61
///
62
62
/// Default: None
63
63
pub max_inline_top_level : Option < usize > ,
64
+ /// Inline the first top level argument
65
+ ///
66
+ /// Default: false
67
+ pub inline_first_top_level : bool ,
64
68
}
65
69
66
70
impl < ' a > Default for FormatOptions < ' a > {
@@ -74,6 +78,7 @@ impl<'a> Default for FormatOptions<'a> {
74
78
max_inline_block : 50 ,
75
79
max_inline_arguments : None ,
76
80
max_inline_top_level : None ,
81
+ inline_first_top_level : false ,
77
82
}
78
83
}
79
84
}
@@ -306,6 +311,34 @@ mod tests {
306
311
assert_eq ! ( format( input, & QueryParams :: None , & options) , expected) ;
307
312
}
308
313
314
+ #[ test]
315
+ fn it_formats_select_with_complex_where_top_level_inline ( ) {
316
+ let input = indoc ! (
317
+ "
318
+ SELECT * FROM foo, bar, baz WHERE Column1 = 'testing'
319
+ AND ( (Column2 = Column3 OR Column4 >= NOW()) );
320
+ "
321
+ ) ;
322
+ let options = FormatOptions {
323
+ inline_first_top_level : true ,
324
+ max_inline_top_level : Some ( 10 ) ,
325
+ max_inline_arguments : Some ( 20 ) ,
326
+ max_inline_block : 50 ,
327
+ ..Default :: default ( )
328
+ } ;
329
+ let expected = indoc ! (
330
+ "
331
+ SELECT *
332
+ FROM
333
+ foo, bar, baz
334
+ WHERE Column1 = 'testing'
335
+ AND ((Column2 = Column3
336
+ OR Column4 >= NOW()));"
337
+ ) ;
338
+
339
+ assert_eq ! ( format( input, & QueryParams :: None , & options) , expected) ;
340
+ }
341
+
309
342
#[ test]
310
343
fn it_formats_select_with_top_level_reserved_words ( ) {
311
344
let input = indoc ! (
0 commit comments