Makie.jl keyword argument recipes (v0.24)

I figured out how to make this work. I embed the following in my plot! overload. It parses the keywords (available in plot.kw), determines if they’re relevant (meaning I set a default), does default substitution, and adds them to the compute graph.

Here is an example for a Surface recipe:

    # set default arguments and parse keywords
    default_kwargs = Dict(
        :shininess => 0f0,
        :specular => 0.0,
        :ssao => true,
        :alpha => 1.0)
    for (key, val) in default_kwargs
        if key in keys(plot.kw)
            val = plot.kw[key]
        end
        Makie.add_input!(plot.attributes, key, val)
    end

I think the issue stems from the fact that default arguments are set per-function (meaning plot, surface, myhist), not per-type (meaning Type{Plot(Foo)} or Type{Plot(Bar)}). So there is nowhere for me to overload a function to tie into existing mechanims for default argument substitution since I was trying to dispatch on the latter (which doesn’t enter the function call).

Also, @jling, in all my other recipes I was able to removed shared_attributes(plot.attributes) and just directly pass in plot.attributes directly. I think in the past it would complain about extraneous arguments if you didn’t do that, but it seems to work fine without that now.