diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/odin/printer/printer.odin | 7 | ||||
| -rw-r--r-- | src/odin/printer/visit.odin | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/odin/printer/printer.odin b/src/odin/printer/printer.odin index aa3a771..227f909 100644 --- a/src/odin/printer/printer.odin +++ b/src/odin/printer/printer.odin @@ -232,8 +232,12 @@ print_file :: proc(p: ^Printer, file: ^ast.File) -> string { // Keep track of the first import in a row, to sort them later. import_group_start: Maybe(int) + prev_decl: ^ast.Stmt for decl, i in file.decls { decl := cast(^ast.Decl)decl + defer { + prev_decl = decl + } if imp, is_import := decl.derived.(^ast.Import_Decl); p.config.sort_imports && is_import { // First import in this group. @@ -257,6 +261,9 @@ print_file :: proc(p: ^Printer, file: ^ast.File) -> string { import_group_start = nil } + if prev_decl != nil && prev_decl.end.line == decl.pos.line && decl.pos.line not_in p.disabled_lines { + p.document = cons(p.document, break_with("; ")) + } p.document = cons(p.document, visit_decl(p, decl)) } } diff --git a/src/odin/printer/visit.odin b/src/odin/printer/visit.odin index 2eef327..96890f3 100644 --- a/src/odin/printer/visit.odin +++ b/src/odin/printer/visit.odin @@ -2016,7 +2016,7 @@ visit_block_stmts :: proc(p: ^Printer, stmts: []^ast.Stmt) -> ^Document { for stmt, i in stmts { last_index := max(0, i - 1) if stmts[last_index].end.line == stmt.pos.line && i != 0 && stmt.pos.line not_in p.disabled_lines { - document = cons(document, break_with(";")) + document = group(cons(document, break_with("; "))) } if p.force_statement_fit { |