Browse Source

Fix trailing whitespace trim just before closing indent token

pull/47/head
Fredrik Ekre 1 year ago
parent
commit
92a8d73335
No known key found for this signature in database
GPG Key ID: DE82E6D5E364C0A2
  1. 5
      src/chisels.jl
  2. 5
      src/runestone.jl
  3. 3
      test/runtests.jl

5
src/chisels.jl

@ -336,6 +336,11 @@ function make_node(node::Node, kids′::Vector{Node}, tags = node.tags)
return Node(head(node), span′, kids′, tags) return Node(head(node), span′, kids′, tags)
end end
function make_node(node::Node, span′::Integer, tags = node.tags)
@assert is_leaf(node)
return Node(head(node), span′, (), tags)
end
# TODO: Remove? # TODO: Remove?
first_leaf(node::Node) = nth_leaf(node, 1) first_leaf(node::Node) = nth_leaf(node, 1)

5
src/runestone.jl

@ -21,8 +21,7 @@ function trim_trailing_whitespace(ctx::Context, node::Node)
nb = replace_bytes!(ctx, str′, span(node)) nb = replace_bytes!(ctx, str′, span(node))
@assert nb != span(node) @assert nb != span(node)
# Create new node and return it # Create new node and return it
node′ = Node(head(node), nb) return make_node(node, nb)
return node′
end end
function replace_tabs_with_four_spaces(ctx::Context, node::Node) function replace_tabs_with_four_spaces(ctx::Context, node::Node)
@ -39,7 +38,7 @@ function replace_tabs_with_four_spaces(ctx::Context, node::Node)
tabidx = findnext(x -> x == UInt8('\t'), bytes, tabidx + 4) tabidx = findnext(x -> x == UInt8('\t'), bytes, tabidx + 4)
end end
nb = replace_bytes!(ctx, bytes, span(node)) nb = replace_bytes!(ctx, bytes, span(node))
return Node(head(node), nb, tags(node)) return make_node(node, nb)
end end
function format_hex_literals(ctx::Context, node::Node) function format_hex_literals(ctx::Context, node::Node)

3
test/runtests.jl

@ -61,6 +61,9 @@ end
println(io, " ") println(io, " ")
str = String(take!(io)) str = String(take!(io))
@test format_string(str) == "a = 1\nb = 2\n\n\n" @test format_string(str) == "a = 1\nb = 2\n\n\n"
# Trailing whitespace just before closing indent token
@test format_string("begin\n a = 1 \nend") == "begin\n a = 1\nend"
@test format_string("let\n a = 1 \nend") == "let\n a = 1\nend"
end end
@testset "Hex/oct/bin literal integers" begin @testset "Hex/oct/bin literal integers" begin

Loading…
Cancel
Save