From 66351954c34348a6874eb5e8903d03e8d25543f9 Mon Sep 17 00:00:00 2001 From: Fons van der Plas Date: Tue, 7 Jun 2022 19:51:44 +0200 Subject: [PATCH] Display.@auto_id() --- src/AbstractPlutoDingetjes.jl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/AbstractPlutoDingetjes.jl b/src/AbstractPlutoDingetjes.jl index 77e85b6..990b377 100644 --- a/src/AbstractPlutoDingetjes.jl +++ b/src/AbstractPlutoDingetjes.jl @@ -248,6 +248,28 @@ end module Display import ..AbstractPlutoDingetjes + + +struct _AutoIDGiver + source::LineNumberNode +end +function Base.show(io::IO, g::_AutoIDGiver) + auto_id! = get(io, :pluto_auto_id!, _fallback_auto_id!) + + name = "id_$( + string(hash(g.source), base=62) + )_$( + auto_id!(io) + )" + + write(io, name) +end +_fallback_auto_id!(::IO) = string(rand(Int)) + +macro auto_id() + _AutoIDGiver(__source__) +end + end end