Correctly nest multiline pipeline expressions.
This commit is contained in:
		
							parent
							
								
									cb5dc75326
								
							
						
					
					
						commit
						17431daaa4
					
				|  | @ -1030,18 +1030,20 @@ impl<'comments> Formatter<'comments> { | |||
|                 _ => self.wrap_expr(expr), | ||||
|             }; | ||||
| 
 | ||||
|             let expr = self.operator_side(doc, 4, expr.binop_precedence()); | ||||
|             let expr = self | ||||
|                 .operator_side(doc, 4, expr.binop_precedence()) | ||||
|                 .nest(2 * INDENT + 1); | ||||
| 
 | ||||
|             match printed_comments(comments, true) { | ||||
|                 None => { | ||||
|                     let pipe = prebreak("|> ", " |> ").nest(2); | ||||
|                     let pipe = prebreak("|> ", " |> ").nest(INDENT); | ||||
|                     docs.push(pipe.append(expr)); | ||||
|                 } | ||||
|                 Some(comments) => { | ||||
|                     let pipe = prebreak("|> ", "|> "); | ||||
|                     docs.push( | ||||
|                         " ".to_doc() | ||||
|                             .append(comments.nest(2).append(pipe.append(expr).group())), | ||||
|                             .append(comments.nest(INDENT).append(pipe.append(expr).group())), | ||||
|                     ); | ||||
|                 } | ||||
|             } | ||||
|  |  | |||
|  | @ -723,3 +723,28 @@ fn format_trace_callback() { | |||
| 
 | ||||
|     assert_fmt(src, expected); | ||||
| } | ||||
| 
 | ||||
| #[test] | ||||
| fn format_pipe_fn() { | ||||
|     let src = indoc! { r#" | ||||
|       fn foo() { | ||||
|         outputs | ||||
|           |> list.any( | ||||
|           fn(output) { value.quantity_of(output.value, policy_id, asset_name) == 1 }, | ||||
|         ) | ||||
|       } | ||||
|     "#};
 | ||||
| 
 | ||||
|     let expected = indoc! { r#" | ||||
|       fn foo() { | ||||
|         outputs | ||||
|           |> list.any( | ||||
|                fn(output) { | ||||
|                  value.quantity_of(output.value, policy_id, asset_name) == 1 | ||||
|                }, | ||||
|              ) | ||||
|       } | ||||
|     "#};
 | ||||
| 
 | ||||
|     assert_fmt(src, expected); | ||||
| } | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ validator { | |||
|   } | ||||
| } | ||||
| 
 | ||||
| validator (output_reference: OutputReference) { | ||||
| validator(output_reference: OutputReference) { | ||||
|   fn mint(_redeemer: Void, ctx: ScriptContext) -> Bool { | ||||
|     when | ||||
|       list.find( | ||||
|  |  | |||
|  | @ -10,8 +10,10 @@ type DayOfTheWeek { | |||
| 
 | ||||
| fn is_work(day: DayOfTheWeek) { | ||||
|   when day is { | ||||
|     Tuesday | Wednesday | Thursday | Friday | Saturday -> True | ||||
|     _ -> False | ||||
|     Tuesday | Wednesday | Thursday | Friday | Saturday -> | ||||
|       True | ||||
|     _ -> | ||||
|       False | ||||
|   } | ||||
| } | ||||
| 
 | ||||
|  | @ -25,10 +27,12 @@ test is_work_2() { | |||
| 
 | ||||
| fn is_happy_hour(day: DayOfTheWeek, current_time: Int) { | ||||
|   when day is { | ||||
|     Monday | Sunday -> True | ||||
|     Monday | Sunday -> | ||||
|       True | ||||
|     Tuesday | Wednesday | Thursday | Friday | Saturday if current_time > 18 -> | ||||
|       True | ||||
|     _ -> False | ||||
|     _ -> | ||||
|       False | ||||
|   } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 KtorZ
						KtorZ