Browse Source

Also trim trailing semicolon in `do` and `(mutable )struct`

pull/53/head
Fredrik Ekre 1 year ago
parent
commit
9f8bcab930
No known key found for this signature in database
GPG Key ID: DE82E6D5E364C0A2
  1. 2
      src/runestone.jl
  2. 6
      test/runtests.jl

2
src/runestone.jl

@ -3279,7 +3279,7 @@ function remove_trailing_semicolon(ctx::Context, node::Node)
r = remove_trailing_semicolon_block(ctx, node) r = remove_trailing_semicolon_block(ctx, node)
return r return r
end end
if !(!is_leaf(node) && kind(node) in KSet"if elseif quote function for let while macro try catch finally else") if !(!is_leaf(node) && kind(node) in KSet"if elseif quote function for let while macro try catch finally else do struct")
return nothing return nothing
end end
if kind(node) === K"quote" && JuliaSyntax.has_flags(node, JuliaSyntax.COLON_QUOTE) if kind(node) === K"quote" && JuliaSyntax.has_flags(node, JuliaSyntax.COLON_QUOTE)

6
test/runtests.jl

@ -1164,7 +1164,7 @@ end
""" """
for prefix in ( for prefix in (
"begin", "quote", "for i in I", "let", "let x = 1", "while cond", "begin", "quote", "for i in I", "let", "let x = 1", "while cond",
"if cond", "macro f()", "function f()", "if cond", "macro f()", "function f()", "f() do", "f() do x",
) )
@test format_string("$(prefix)\n$(body)\nend") == "$prefix\n$(bodyfmt)\nend" @test format_string("$(prefix)\n$(body)\nend") == "$prefix\n$(bodyfmt)\nend"
end end
@ -1184,6 +1184,10 @@ end
format_string("try\n$(bodyfmt)\ncatch err\n$(bodyfmt)\nfinally\n$(bodyfmt)\nend") format_string("try\n$(bodyfmt)\ncatch err\n$(bodyfmt)\nfinally\n$(bodyfmt)\nend")
@test format_string("try\n$(body)\ncatch err\n$(body)\nelse\n$(body)\nend") == @test format_string("try\n$(body)\ncatch err\n$(body)\nelse\n$(body)\nend") ==
format_string("try\n$(bodyfmt)\ncatch err\n$(bodyfmt)\nelse\n$(bodyfmt)\nend") format_string("try\n$(bodyfmt)\ncatch err\n$(bodyfmt)\nelse\n$(bodyfmt)\nend")
for mut in ("", "mutable ")
@test format_string("$(mut)struct A\na::Int;\nend") ==
"$(mut)struct A\n a::Int\nend"
end
# Top-level semicolons are kept (useful if you want to supress output in various # Top-level semicolons are kept (useful if you want to supress output in various
# contexts) # contexts)
let str = """ let str = """

Loading…
Cancel
Save