Browse Source

Fix bug in formatting in export/public expressions with macronames

pull/26/head
Fredrik Ekre 1 year ago
parent
commit
0660870c08
No known key found for this signature in database
GPG Key ID: DE82E6D5E364C0A2
  1. 7
      src/runestone.jl
  2. 12
      test/runtests.jl

7
src/runestone.jl

@ -973,13 +973,16 @@ function spaces_in_export_public(ctx::Context, node::Node)
end end
state = :expect_identifier state = :expect_identifier
elseif state === :expect_identifier elseif state === :expect_identifier
if kind(kid) === K"Identifier" state = :expect_comma
if kind(kid) in KSet"Identifier @ MacroName"
any_changes && push!(kids′, kid) any_changes && push!(kids′, kid)
accept_node!(ctx, kid) accept_node!(ctx, kid)
if kind(kid) === K"@"
state = :expect_identifier
end
else else
@assert false @assert false
end end
state = :expect_comma
else else
@assert state === :expect_comma @assert state === :expect_comma
state = :expect_space state = :expect_space

12
test/runtests.jl

@ -799,12 +799,12 @@ end
end end
@testset "spaces in export/public" begin @testset "spaces in export/public" begin
for sp in ("", " ", " ", "\t"), verb in ("export", "public") for sp in ("", " ", " ", "\t"), verb in ("export", "public"), (a, b) in (("a", "@b"), ("@a", "b"))
@test format_string("$(verb) $(sp)a") == "$(verb) a" @test format_string("$(verb) $(sp)$(a)") == "$(verb) $(a)"
@test format_string("$(verb)\na") == "$(verb)\n a" @test format_string("$(verb)\n$(a)") == "$(verb)\n $(a)"
@test format_string("$(verb) $(sp)a$(sp),$(sp)b") == "$(verb) a, b" @test format_string("$(verb) $(sp)$(a)$(sp),$(sp)$(b)") == "$(verb) $(a), $(b)"
@test format_string("$(verb) a$(sp),\nb") == "$(verb) a,\n b" @test format_string("$(verb) $(a)$(sp),\n$(b)") == "$(verb) $(a),\n $(b)"
@test format_string("$(verb) \na$(sp),\nb") == "$(verb)\n a,\n b" @test format_string("$(verb) \n$(a)$(sp),\n$(b)") == "$(verb)\n $(a),\n $(b)"
end end
end end

Loading…
Cancel
Save