@@ -406,7 +406,7 @@ antlrcpp::Any FormatVisitor::visitGotoStat(LuaParser::GotoStatContext* ctx) {
406406antlrcpp::Any FormatVisitor::visitDoStat (LuaParser::DoStatContext* ctx) {
407407 LOG_FUNCTION_BEGIN (" visitDoStat" );
408408 cur_writer () << ctx->DO ()->getText ();
409- visitBlockAndComment (ctx->DO (), ctx->block ());
409+ visitBlockAndComment (ctx->DO (), ctx->block (), CONTROL_BLOCK );
410410 cur_writer () << ctx->END ()->getText ();
411411 LOG_FUNCTION_END (" visitDoStat" );
412412 return nullptr ;
@@ -420,7 +420,7 @@ antlrcpp::Any FormatVisitor::visitWhileStat(LuaParser::WhileStatContext* ctx) {
420420 visitExp (ctx->exp ());
421421 cur_writer () << commentAfter (ctx->exp (), " " );
422422 cur_writer () << ctx->DO ()->getText ();
423- visitBlockAndComment (ctx->DO (), ctx->block ());
423+ visitBlockAndComment (ctx->DO (), ctx->block (), CONTROL_BLOCK );
424424 cur_writer () << ctx->END ()->getText ();
425425 LOG_FUNCTION_END (" visitWhileStat" );
426426 return nullptr ;
@@ -430,7 +430,7 @@ antlrcpp::Any FormatVisitor::visitWhileStat(LuaParser::WhileStatContext* ctx) {
430430antlrcpp::Any FormatVisitor::visitRepeatStat (LuaParser::RepeatStatContext* ctx) {
431431 LOG_FUNCTION_BEGIN (" visitRepeatStat" );
432432 cur_writer () << ctx->REPEAT ()->getText ();
433- visitBlockAndComment (ctx->REPEAT (), ctx->block ());
433+ visitBlockAndComment (ctx->REPEAT (), ctx->block (), CONTROL_BLOCK );
434434 cur_writer () << ctx->UNTIL ()->getText ();
435435 cur_writer () << commentAfter (ctx->UNTIL (), " " );
436436 visitExp (ctx->exp ());
@@ -452,7 +452,7 @@ antlrcpp::Any FormatVisitor::visitIfStat(LuaParser::IfStatContext* ctx) {
452452 cur_writer () << commentAfter (ctx->exp ().front (), " " );
453453 cur_writer () << ctx->THEN ().front ()->getText ();
454454 if (ctx->ELSEIF ().size () == 0 && ctx->ELSE () == NULL ) {
455- if (needKeepBlockOneLine (ctx->THEN ().front (), ctx->block ().front ())) {
455+ if (needKeepBlockOneLine (ctx->THEN ().front (), ctx->block ().front (), CONTROL_BLOCK )) {
456456 cur_writer () << commentAfter (ctx->THEN ().front (), " " );
457457 bool temp = chop_down_block_;
458458 chop_down_block_ = false ;
@@ -517,7 +517,7 @@ antlrcpp::Any FormatVisitor::visitForStat(LuaParser::ForStatContext* ctx) {
517517 cur_writer () << commentAfter (ctx->exp ()[1 ], " " );
518518 }
519519 cur_writer () << ctx->DO ()->getText ();
520- visitBlockAndComment (ctx->DO (), ctx->block ());
520+ visitBlockAndComment (ctx->DO (), ctx->block (), CONTROL_BLOCK );
521521 cur_writer () << ctx->END ()->getText ();
522522 LOG_FUNCTION_END (" visitForStat" );
523523 return nullptr ;
@@ -535,7 +535,7 @@ antlrcpp::Any FormatVisitor::visitForInStat(LuaParser::ForInStatContext* ctx) {
535535 visitExplist (ctx->explist ());
536536 cur_writer () << commentAfter (ctx->explist (), " " );
537537 cur_writer () << ctx->DO ()->getText ();
538- visitBlockAndComment (ctx->DO (), ctx->block ());
538+ visitBlockAndComment (ctx->DO (), ctx->block (), CONTROL_BLOCK );
539539 cur_writer () << ctx->END ()->getText ();
540540 LOG_FUNCTION_END (" visitForInStat" );
541541 return nullptr ;
@@ -1413,7 +1413,7 @@ antlrcpp::Any FormatVisitor::visitFuncbody(LuaParser::FuncbodyContext* ctx) {
14131413 cur_writer () << commentAfter (ctx->LP (), " " );
14141414 }
14151415 cur_writer () << ctx->RP ()->getText ();
1416- visitBlockAndComment (ctx->RP (), ctx->block ());
1416+ visitBlockAndComment (ctx->RP (), ctx->block (), FUNCTION_BLOCK );
14171417 cur_writer () << ctx->END ()->getText ();
14181418 LOG_FUNCTION_END (" visitFuncbody" );
14191419 return nullptr ;
@@ -1644,10 +1644,13 @@ antlrcpp::Any FormatVisitor::visitTerminal(tree::TerminalNode* node) {
16441644 return nullptr ;
16451645}
16461646
1647- bool FormatVisitor::needKeepBlockOneLine (tree::ParseTree* previousNode, LuaParser::BlockContext* ctx) {
1648- if (!config_.get <bool >(" keep_simple_block_one_line" )) {
1647+ bool FormatVisitor::needKeepBlockOneLine (tree::ParseTree* previousNode, LuaParser::BlockContext* ctx, BlockType blockType) {
1648+ if (blockType == CONTROL_BLOCK && !config_.get <bool >(" keep_simple_control_block_one_line" )){
1649+ return false ;
1650+ } else if (blockType == FUNCTION_BLOCK && !config_.get <bool >(" keep_simple_function_one_line" )){
16491651 return false ;
16501652 }
1653+
16511654 int stats = 0 ;
16521655 for (auto & s : ctx->stat ()) {
16531656 if (s->SEMI () == NULL ) {
@@ -1687,9 +1690,9 @@ bool FormatVisitor::isBlockEmpty(LuaParser::BlockContext* ctx) {
16871690 return ctx->stat ().size () == 0 && ctx->retstat () == NULL ;
16881691}
16891692
1690- void FormatVisitor::visitBlockAndComment (tree::ParseTree* previousNode, LuaParser::BlockContext* ctx) {
1693+ void FormatVisitor::visitBlockAndComment (tree::ParseTree* previousNode, LuaParser::BlockContext* ctx, BlockType blockType ) {
16911694 LOG_FUNCTION_BEGIN (" visitBlockAndComment" );
1692- bool oneline = needKeepBlockOneLine (previousNode, ctx);
1695+ bool oneline = needKeepBlockOneLine (previousNode, ctx, blockType );
16931696 if (oneline) {
16941697 cur_writer () << commentAfter (previousNode, " " );
16951698 bool temp = chop_down_block_;
0 commit comments