Skip to content

Commit

Permalink
fix @wrap to not touch gutter settings and to handle cell correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
hhaensel committed Mar 18, 2024
1 parent b4cb249 commit 41dacd0
Showing 1 changed file with 18 additions and 13 deletions.
31 changes: 18 additions & 13 deletions src/Layout.jl
Original file line number Diff line number Diff line change
Expand Up @@ -283,9 +283,9 @@ function extract_kwargs!(args::Vector, kwarg_names)
params = []
inds = Int[]
for n in length(args):-1:1
if args[n] isa Expr && args[n].head == :kw && args[n].args[1] in kwarg_names
pushfirst!(kwargs.args, popat!(args, n))
end
if args[n] isa Expr && args[n].head == :kw && args[n].args[1] in kwarg_names
pushfirst!(kwargs.args, popat!(args, n))
end
end
n = length(args)
pos = n > 0 && args[1] isa Expr && args[1].head == :parameters ? 1 : n > 1 && args[2] isa Expr && args[2].head == :parameters ? 2 : 0
Expand All @@ -294,24 +294,29 @@ function extract_kwargs!(args::Vector, kwarg_names)

parameters = args[pos].args
for n in length(parameters):-1:1
println("parameters[$n]", parameters[n])
if parameters[n] isa Expr && parameters[n].head == :kw && parameters[n].args[1] in kwarg_names ||
parameters[n] isa Symbol && parameters[n] in kwarg_names
push!(params, popat!(parameters, n))
end
println("parameters[$n]", parameters[n])
if parameters[n] isa Expr && parameters[n].head == :kw && parameters[n].args[1] in kwarg_names ||
parameters[n] isa Symbol && parameters[n] in kwarg_names
push!(params, popat!(parameters, n))
end
end
append!(kwargs.args, reverse(params))
kwargs
end

function _wrap_expression(expr)
new_expr = if expr isa Expr && expr.head == :call
kwargs = extract_kwargs!(expr.args, FLEXGRID_KWARGS)
new_expr = :(Stipple.htmldiv())
push!(new_expr.args, kwargs, expr)
new_expr
kwargs = extract_kwargs!(expr.args, FLEXGRID_KWARGS[1:6])
# extra treatment for cell(), because col = 0 is default:
# So if not set explicitly then add col = 0 to the wrapper kwargs
if expr.args[1] == :cell && :col [kwarg isa Expr ? kwarg.args[1] : kwarg for kwarg in kwargs.args]
push!(kwargs.args, Expr(:kw, :col, 0))
end
new_expr = :(Stipple.htmldiv())
push!(new_expr.args, kwargs, expr)
new_expr
else
:(Stipple.htmldiv($expr))
:(Stipple.htmldiv($expr))
end

new_expr
Expand Down

0 comments on commit 41dacd0

Please sign in to comment.