fmt: correct indent for StructDecl multi line default exprs (#8148)
							parent
							
								
									ef627c9d21
								
							
						
					
					
						commit
						371730f8a8
					
				|  | @ -46,10 +46,10 @@ pub mut: | |||
| 	base_path string | ||||
| 	table     &table.Table    = &table.Table{} | ||||
| 	checker   checker.Checker = checker.Checker{ | ||||
| 	table: 0 | ||||
| 	cur_fn: 0 | ||||
| 	pref: 0 | ||||
| } | ||||
| 		table: 0 | ||||
| 		cur_fn: 0 | ||||
| 		pref: 0 | ||||
| 	} | ||||
| 	fmt             fmt.Fmt | ||||
| 	filename        string | ||||
| 	pos             int | ||||
|  |  | |||
|  | @ -687,6 +687,7 @@ pub fn (mut f Fmt) struct_decl(node ast.StructDecl) { | |||
| 	mut field_align_i := 0 | ||||
| 	mut comment_align_i := 0 | ||||
| 	mut default_expr_align_i := 0 | ||||
| 	mut inc_indent := false // for correct indents with multi line default exprs
 | ||||
| 	for i, field in node.fields { | ||||
| 		if i == node.mut_pos { | ||||
| 			f.writeln('mut:') | ||||
|  | @ -738,7 +739,15 @@ pub fn (mut f Fmt) struct_decl(node ast.StructDecl) { | |||
| 			pad_len := align.max_attrs_len - attrs_len + align.max_type_len - field_types[i].len | ||||
| 			f.write(strings.repeat(` `, pad_len)) | ||||
| 			f.write(' = ') | ||||
| 			if !expr_is_single_line(field.default_expr) { | ||||
| 				f.indent++ | ||||
| 				inc_indent = true | ||||
| 			} | ||||
| 			f.prefix_expr_cast_expr(field.default_expr) | ||||
| 			if inc_indent { | ||||
| 				f.indent-- | ||||
| 				inc_indent = false | ||||
| 			} | ||||
| 		} | ||||
| 		// Handle comments after field type (same line)
 | ||||
| 		if comm_idx < comments.len { | ||||
|  | @ -1007,6 +1016,11 @@ fn expr_is_single_line(expr ast.Expr) bool { | |||
| 				return false | ||||
| 			} | ||||
| 		} | ||||
| 		ast.ArrayInit { | ||||
| 			if expr.exprs.len > 0 { | ||||
| 				return expr_is_single_line(expr.exprs[0]) | ||||
| 			} | ||||
| 		} | ||||
| 		else {} | ||||
| 	} | ||||
| 	return true | ||||
|  |  | |||
|  | @ -34,3 +34,13 @@ pub: | |||
| 	a int | ||||
| 	b int | ||||
| } | ||||
| 
 | ||||
| struct KeepMultiLineDefaultExprsIndent { | ||||
| 	buttons []PeriodButton = [PeriodButton{ | ||||
| 		period: pr.Period.m1 | ||||
| 		text: 'M1' | ||||
| 	}, PeriodButton{ | ||||
| 		period: pr.Period.m5 | ||||
| 		text: 'M5' | ||||
| 	}] | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue