Skip to content

Commit 299765f

Browse files
authored
Merge pull request #26 from JuliaPluto/hide-single-line-begin-blocks
2 parents be78e59 + b7e6968 commit 299765f

File tree

1 file changed

+61
-34
lines changed

1 file changed

+61
-34
lines changed

src/notebook.jl

+61-34
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
### A Pluto.jl notebook ###
2-
# v0.17.7
2+
# v0.18.1
33

44
using Markdown
55
using InteractiveUtils
@@ -873,15 +873,16 @@ end;
873873
md"## Pretty printing code"
874874

875875
# ╔═╡ dbd41240-9fc4-4e25-8b25-2b68afa679f2
876-
struct EscapeExpr
877-
expr
878-
end
879-
880-
# ╔═╡ 91e3e2b4-7966-42ee-8a45-31d6c5f08121
881-
function Base.show(io::IO, val::EscapeExpr)
882-
print(io, "\$(esc(")
883-
print(io, val.expr)
884-
print(io, "))")
876+
begin
877+
struct EscapeExpr
878+
expr
879+
end
880+
function Base.show(io::IO, val::EscapeExpr)
881+
print(io, "\$(esc(")
882+
print(io, val.expr)
883+
print(io, "))")
884+
end
885+
EscapeExpr
885886
end
886887

887888
# ╔═╡ 7cc07d1b-7757-4428-8028-dc892bf05f2f
@@ -927,14 +928,48 @@ end
927928
# ╔═╡ dd495e00-d74d-47d4-a5d5-422fb147ec3b
928929
remove_linenums(x) = x
929930

931+
# ╔═╡ e414c28a-8111-4821-ab25-21aff8289d26
932+
function remove_singleline_blocks(e::Expr)
933+
if Meta.isexpr(e, :quote) || Meta.isexpr(e, :macrocall)
934+
e
935+
elseif Meta.isexpr(e, :block, 1)
936+
remove_singleline_blocks(e.args[1])
937+
else
938+
Expr(
939+
e.head,
940+
(remove_singleline_blocks(a) for a in e.args)...
941+
)
942+
end
943+
end
944+
945+
# ╔═╡ c13e0f00-d3c4-4f1d-9531-84ed480c81f3
946+
remove_singleline_blocks(x) = x
947+
948+
# ╔═╡ b765dbfe-4e58-4bb9-b1d6-aa4378d4e9c9
949+
expr_to_str(e; mod=@__MODULE__(), context::IO=devnull) = let
950+
Computed;
951+
952+
printed = sprint() do io
953+
954+
Base.print(
955+
IOContext(IOContext(io, :module => mod), context),
956+
remove_singleline_blocks(escape_syntax_to_esc_call(move_escape_calls_up(remove_linenums(e))))
957+
)
958+
end
959+
replace(printed, r"#= line 0 =# ?" => "")
960+
end
961+
962+
# ╔═╡ 227129bc-4415-4240-ad55-815bde65a5a1
963+
function Base.showerror(io::IO, error::CantStepifyThisYetException)
964+
print(io, "CantStepifyThisYetException: Can't make `$(expr_to_str(error.expr))` into separate steps yet")
965+
end
966+
930967
# ╔═╡ ab0a19b8-cf7c-4c4f-802a-f85eef81fc02
931968
function Base.show(io::IO, m::MIME"text/html", sd::SlottedDisplay)
932969

933970
d, e = sd.d, sd.e
934971

935-
s = sprint() do iobuffer
936-
print(IOContext(iobuffer, io), e |> remove_linenums)
937-
end
972+
s = expr_to_str(e; context=io)
938973

939974
lines = split(replace(s, r"#= line 0 =# ?" => ""), "\n")
940975

@@ -960,21 +995,6 @@ function Base.show(io::IO, m::MIME"text/html", sd::SlottedDisplay)
960995
show(io, m, h)
961996
end
962997

963-
# ╔═╡ b765dbfe-4e58-4bb9-b1d6-aa4378d4e9c9
964-
expr_to_str(e, mod=@__MODULE__()) = let
965-
Computed;
966-
967-
printed = sprint() do io
968-
Base.print(IOContext(io, :module => @__MODULE__), escape_syntax_to_esc_call(move_escape_calls_up(remove_linenums(e))))
969-
end
970-
replace(printed, r"#= line 0 =# ?" => "")
971-
end
972-
973-
# ╔═╡ 227129bc-4415-4240-ad55-815bde65a5a1
974-
function Base.showerror(io::IO, error::CantStepifyThisYetException)
975-
print(io, "CantStepifyThisYetException: Can't make `$(expr_to_str(error.expr))` into separate steps yet")
976-
end
977-
978998
# ╔═╡ ef6fc423-f1b1-4dcb-a059-276121391bc6
979999
prettycolors(e) = Markdown.MD([Markdown.Code("julia", expr_to_str(e))])
9801000

@@ -1724,6 +1744,11 @@ example_cant_stepify_if_else = @skip_as_script let
17241744
end).error isa CantStepifyThisYetException
17251745
end
17261746

1747+
# ╔═╡ 1b869c21-b8cd-4aaa-91a9-370c1b7a3d32
1748+
@skip_as_script @test quote
1749+
begin begin begin 123 end end end
1750+
end |> remove_linenums |> remove_singleline_blocks === 123
1751+
17271752
# ╔═╡ Cell order:
17281753
# ╟─ab02837b-79ec-40d7-bff1-c1d2dd7362ef
17291754
# ╠═73d74146-8f60-4388-aaba-0dfe4215cb5d
@@ -1743,7 +1768,7 @@ end
17431768
# ╠═78704300-0531-4f8e-8aa5-3f588fbdd190
17441769
# ╠═9129342b-f560-4901-81a2-56e3f8641521
17451770
# ╠═c763ed72-82c9-445c-a8f7-a0c40982e4d9
1746-
# ╠═8a2e8348-49cf-4855-b5b3-cdee33e5ed67
1771+
# ╟─8a2e8348-49cf-4855-b5b3-cdee33e5ed67
17471772
# ╟─42671258-07a0-4015-8f47-4b3032595f08
17481773
# ╟─0d70962a-3880-4dee-a439-35068d019f5a
17491774
# ╠═113cc425-e224-4f77-bfbd-ef4eb1d1ed70
@@ -1784,7 +1809,7 @@ end
17841809
# ╠═17dea9e5-84ea-4476-a318-cc475043c83b
17851810
# ╟─5e66e59b-fdb8-4373-b231-097b0227dc5c
17861811
# ╠═c47252b9-8869-4878-b9bf-7eeb7ed17c9a
1787-
# ╟─227129bc-4415-4240-ad55-815bde65a5a1
1812+
# ╠═227129bc-4415-4240-ad55-815bde65a5a1
17881813
# ╠═ce90612e-ffc1-4e30-9d89-531f11fd75eb
17891814
# ╟─0a3f5c6c-6e1b-458c-bf91-523a0b639b41
17901815
# ╟─43fe89d7-f33e-4dfa-853e-327e981feb1e
@@ -1801,7 +1826,7 @@ end
18011826
# ╟─a29d5277-e97a-4cca-8e31-8037f9cfdd80
18021827
# ╟─4f7aac13-9e49-4b2b-8d78-53f583f6130a
18031828
# ╟─cc7102e1-6af0-43bb-8cf0-43e2cec210e3
1804-
# ╠═f5d9a4c5-300f-4dae-8507-346ec0b74632
1829+
# ╟─f5d9a4c5-300f-4dae-8507-346ec0b74632
18051830
# ╟─ec6f1b07-d026-45ca-996d-be7693664cd7
18061831
# ╟─dadf1c50-6588-4345-a240-69a72336c7cd
18071832
# ╟─d384e3fc-b207-48ce-bc7b-1b47a14b1581
@@ -1874,15 +1899,17 @@ end
18741899
# ╟─6c0156a9-7281-4326-9e1f-989efa73bb7b
18751900
# ╟─8d3df0c0-eb48-4dae-97a8-8c01f0b0a34b
18761901
# ╟─ef6fc423-f1b1-4dcb-a059-276121391bc6
1877-
# ╠═b765dbfe-4e58-4bb9-b1d6-aa4378d4e9c9
1902+
# ╟─b765dbfe-4e58-4bb9-b1d6-aa4378d4e9c9
1903+
# ╟─1b869c21-b8cd-4aaa-91a9-370c1b7a3d32
18781904
# ╟─dbd41240-9fc4-4e25-8b25-2b68afa679f2
1879-
# ╟─91e3e2b4-7966-42ee-8a45-31d6c5f08121
18801905
# ╟─7cc07d1b-7757-4428-8028-dc892bf05f2f
18811906
# ╟─e0837338-e657-4bdc-ae91-1de9224da78d
18821907
# ╟─64df4678-0721-4911-8289-fb18f55e6657
18831908
# ╟─58845ff9-821b-45d4-b5ec-96e1949bb277
1884-
# ╠═4d5f44e4-85e9-4985-9b76-73be5e097186
1909+
# ╟─4d5f44e4-85e9-4985-9b76-73be5e097186
18851910
# ╟─dd495e00-d74d-47d4-a5d5-422fb147ec3b
1911+
# ╟─e414c28a-8111-4821-ab25-21aff8289d26
1912+
# ╟─c13e0f00-d3c4-4f1d-9531-84ed480c81f3
18861913
# ╟─7e6c2162-97e9-4835-b650-52c9723c327f
18871914
# ╠═1ac164c8-88fc-4a87-a194-60ef616fb399
18881915
# ╠═b0ab9327-8240-4d34-bdd9-3f8f5117bb29

0 commit comments

Comments
 (0)