diff --git a/src/runestone.jl b/src/runestone.jl index b5396bb..0015c5a 100644 --- a/src/runestone.jl +++ b/src/runestone.jl @@ -2528,6 +2528,11 @@ function indent_ternary(ctx::Context, node::Node) return continue_all_newlines(ctx, node) end +function indent_iterator(ctx::Context, node::Node) + @assert kind(node) === K"cartesian_iterator" + return continue_all_newlines(ctx, node) +end + function indent_assignment(ctx::Context, node::Node) kids = verified_kids(node) # Also catches for loop specifications (but at this point we have normalized `=` and `∈` @@ -2728,6 +2733,8 @@ function insert_delete_mark_newlines(ctx::Context, node::Node) return indent_parameters(ctx, node) elseif kind(node) === K"?" return indent_ternary(ctx, node) + elseif kind(node) === K"cartesian_iterator" + return indent_iterator(ctx, node) elseif kind(node) === K"try" return indent_try(ctx, node) elseif kind(node) === K"quote" diff --git a/test/runtests.jl b/test/runtests.jl index 7415c9a..d827ffe 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -759,6 +759,9 @@ end # implicit tuple @test format_string("a,\n$(sp)b") == "a,\n b" @test format_string("a,\n$(sp)b + \nb") == "a,\n b +\n b" + # K"cartesian_iterator" + @test format_string("for i in I,\n$(sp)j in J\n# body\nend") == + "for i in I,\n j in J\n # body\nend" end end