From aded272b330cc6f751a6101bed0004845548e658 Mon Sep 17 00:00:00 2001 From: Daniel Gavin Date: Wed, 14 Apr 2021 18:04:48 +0200 Subject: [PATCH] split stmts --- core/odin/printer/visit.odin | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/core/odin/printer/visit.odin b/core/odin/printer/visit.odin index adbe68fb5..5e54368bb 100644 --- a/core/odin/printer/visit.odin +++ b/core/odin/printer/visit.odin @@ -547,29 +547,14 @@ visit_stmt :: proc(p: ^Printer, stmt: ^ast.Stmt, block_type: Block_Type = .Gener case Block_Stmt: move_line(p, v.pos); - if v.pos.line == v.end.line && len(v.stmts) > 1 && p.config.split_multiple_stmts { - - if !empty_block { - visit_begin_brace(p, v.pos, block_type, len(v.stmts)); - } - - set_source_position(p, v.pos); - - visit_block_stmts(p, v.stmts, true); - - set_source_position(p, v.end); - - if !empty_block { - visit_end_brace(p, v.end); - } - } else if v.pos.line == v.end.line { + if v.pos.line == v.end.line { if !empty_block { push_generic_token(p, .Open_Brace, 0); } set_source_position(p, v.pos); - visit_block_stmts(p, v.stmts); + visit_block_stmts(p, v.stmts, len(v.stmts) > 1 && p.config.split_multiple_stmts); set_source_position(p, v.end); @@ -583,7 +568,7 @@ visit_stmt :: proc(p: ^Printer, stmt: ^ast.Stmt, block_type: Block_Type = .Gener set_source_position(p, v.pos); - visit_block_stmts(p, v.stmts); + visit_block_stmts(p, v.stmts, len(v.stmts) > 1 && p.config.split_multiple_stmts); set_source_position(p, v.end); @@ -1246,14 +1231,13 @@ visit_end_brace :: proc(p: ^Printer, end: tokenizer.Pos) { p.current_line.depth = p.depth; } -visit_block_stmts :: proc(p: ^Printer, stmts: []^ast.Stmt, newline_each := false) { +visit_block_stmts :: proc(p: ^Printer, stmts: []^ast.Stmt, split := false) { for stmt, i in stmts { + visit_stmt(p, stmt, .Generic, false, true); - if newline_each { + if split && i != len(stmts)-1 && stmt.pos.line == stmts[i+1].pos.line { newline_position(p, 1); } - - visit_stmt(p, stmt, .Generic, false, true); } }