domluna / JuliaFormatter.jl

An opinionated code formatter for Julia. Plot twist - the opinion is your own.

Home Page:https://domluna.github.io/JuliaFormatter.jl/dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

invalid bluestyle format result with trailing semicolon : for array indexing

johnnychen94 opened this issue · comments

MWE:

codes = """
a_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_array_name = [1 1; 1 1]

x = a_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_array_name[sum(a_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_array_name[:, 1]), :]
"""

formatted = format_text(codes, BlueStyle())
# will be formatted to
# """
# a_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_array_name = [1 1; 1 1]
# 
# x = a_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_array_name[
#     sum(a_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_array_name[:, 1]), :
# ]
# """

Meta.parse("begin $codes end") # okay
Meta.parse("begin $formatted end") # not okay: raise Base.Meta.ParseError
julia> Meta.parse("begin $codes end")
quote
    #= none:1 =#
    a_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_array_name = [1 1; 1 1]
    #= none:3 =#
    x = a_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_array_name[sum(a_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_array_name[:, 1]), :]
end

julia> Meta.parse("begin $formatted end")
ERROR: Base.Meta.ParseError("newline not allowed after \":\" used for quoting")
Stacktrace:
 [1] #parse#3
   @ ./meta.jl:236 [inlined]
 [2] parse
   @ ./meta.jl:232 [inlined]
 [3] parse(str::String; raise::Bool, depwarn::Bool)
   @ Base.Meta ./meta.jl:267
 [4] parse(str::String)
   @ Base.Meta ./meta.jl:266
 [5] top-level scope
   @ REPL[20]:1