fonsp / Pluto.jl

🎈 Simple reactive notebooks for Julia
https://plutojl.org/
MIT License
4.91k stars 284 forks source link

No dependency resolution for `can_macroexpand` + external macro #2811

Open damourChris opened 4 months ago

damourChris commented 4 months ago

A function definition that use the @htl macro and has a docstrings attached to it cannot be called before the definition as the cell isn't ordered properly.

You can see in MWE that the cell with the call to the bad function is located before the function definition and does not work. When placed after, it does.

Note that this only seems to be when combining @htl and docstring.

Minimum Working Example

MWE

Tested in Pluto v0.19.38

fonsp commented 4 months ago

Thanks for writing a MWE!

geoextra commented 4 months ago

I was facing the same issue and I think go introduced in a recent version. In my git history I can see that my notebook file got "corrupted" without having docstrings added.

fonsp commented 4 months ago

@Pangoraw Do you see a way to fix this? Otherwise let's just revert https://github.com/fonsp/Pluto.jl/pull/2797

Pangoraw commented 4 months ago

@Pangoraw Do you see a way to fix this? Otherwise let's just revert https://github.com/fonsp/Pluto.jl/pull/2797

It is interesting because it should carry on with the macro resolution but it doesn't. Maybe we can revert for now?

I think the problem is that we don't mark failed ExEx.try_macroexpand as unresolved so they are never resolved. See https://github.com/fonsp/Pluto.jl/issues/1388#issuecomment-898311194. Another example with @bind + @u_str:

Screencast from 01-03-2024 14:04:50.webm