mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 23:58:50 +00:00
aligning structs now work
This commit is contained in:
@@ -1028,6 +1028,8 @@ visit_expr :: proc(p: ^Printer, expr: ^ast.Expr) {
|
||||
case Struct_Type:
|
||||
push_generic_token(p, .Struct, 1);
|
||||
|
||||
hint_current_line(p, {.Struct});
|
||||
|
||||
if v.is_packed {
|
||||
push_ident_token(p, "#packed", 1);
|
||||
}
|
||||
@@ -1058,11 +1060,10 @@ visit_expr :: proc(p: ^Printer, expr: ^ast.Expr) {
|
||||
set_source_position(p, v.fields.pos);
|
||||
visit_field_list(p, v.fields, true);
|
||||
push_generic_token(p, .Close_Brace, 0);
|
||||
} else {
|
||||
visit_begin_brace(p, v.pos, .Generic);
|
||||
newline_position(p, 1);
|
||||
} else if v.fields != nil {
|
||||
visit_begin_brace(p, v.pos, .Generic, len(v.fields.list));
|
||||
set_source_position(p, v.fields.pos);
|
||||
visit_field_list(p, v.fields, true, true);
|
||||
visit_field_list(p, v.fields, true, true, true);
|
||||
visit_end_brace(p, v.end);
|
||||
}
|
||||
|
||||
@@ -1256,7 +1257,7 @@ visit_block_stmts :: proc(p: ^Printer, stmts: []^ast.Stmt, newline_each := false
|
||||
}
|
||||
}
|
||||
|
||||
visit_field_list :: proc(p: ^Printer, list: ^ast.Field_List, add_comma := false, trailing := false) {
|
||||
visit_field_list :: proc(p: ^Printer, list: ^ast.Field_List, add_comma := false, trailing := false, enforce_newline := false) {
|
||||
|
||||
if list.list == nil {
|
||||
return;
|
||||
@@ -1264,7 +1265,9 @@ visit_field_list :: proc(p: ^Printer, list: ^ast.Field_List, add_comma := false,
|
||||
|
||||
for field, i in list.list {
|
||||
|
||||
move_line_limit(p, field.pos, 1);
|
||||
if !move_line_limit(p, field.pos, 1) && enforce_newline {
|
||||
newline_position(p, 1);
|
||||
}
|
||||
|
||||
if .Using in field.flags {
|
||||
push_generic_token(p, .Using, 0);
|
||||
|
||||
Reference in New Issue
Block a user