1
1
# ## A Pluto.jl notebook ###
2
- # v0.17.7
2
+ # v0.18.1
3
3
4
4
using Markdown
5
5
using InteractiveUtils
@@ -873,15 +873,16 @@ end;
873
873
md " ## Pretty printing code"
874
874
875
875
# ╔═╡ 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
885
886
end
886
887
887
888
# ╔═╡ 7cc07d1b-7757-4428-8028-dc892bf05f2f
@@ -927,14 +928,48 @@ end
927
928
# ╔═╡ dd495e00-d74d-47d4-a5d5-422fb147ec3b
928
929
remove_linenums (x) = x
929
930
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
+
930
967
# ╔═╡ ab0a19b8-cf7c-4c4f-802a-f85eef81fc02
931
968
function Base. show (io:: IO , m:: MIME"text/html" , sd:: SlottedDisplay )
932
969
933
970
d, e = sd. d, sd. e
934
971
935
- s = sprint () do iobuffer
936
- print (IOContext (iobuffer, io), e |> remove_linenums)
937
- end
972
+ s = expr_to_str (e; context= io)
938
973
939
974
lines = split (replace (s, r" #= line 0 =# ?" => " " ), " \n " )
940
975
@@ -960,21 +995,6 @@ function Base.show(io::IO, m::MIME"text/html", sd::SlottedDisplay)
960
995
show (io, m, h)
961
996
end
962
997
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
-
978
998
# ╔═╡ ef6fc423-f1b1-4dcb-a059-276121391bc6
979
999
prettycolors (e) = Markdown. MD ([Markdown. Code (" julia" , expr_to_str (e))])
980
1000
@@ -1724,6 +1744,11 @@ example_cant_stepify_if_else = @skip_as_script let
1724
1744
end ). error isa CantStepifyThisYetException
1725
1745
end
1726
1746
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
+
1727
1752
# ╔═╡ Cell order:
1728
1753
# ╟─ab02837b-79ec-40d7-bff1-c1d2dd7362ef
1729
1754
# ╠═73d74146-8f60-4388-aaba-0dfe4215cb5d
@@ -1743,7 +1768,7 @@ end
1743
1768
# ╠═78704300-0531-4f8e-8aa5-3f588fbdd190
1744
1769
# ╠═9129342b-f560-4901-81a2-56e3f8641521
1745
1770
# ╠═c763ed72-82c9-445c-a8f7-a0c40982e4d9
1746
- # ╠═ 8a2e8348-49cf-4855-b5b3-cdee33e5ed67
1771
+ # ╟─ 8a2e8348-49cf-4855-b5b3-cdee33e5ed67
1747
1772
# ╟─42671258-07a0-4015-8f47-4b3032595f08
1748
1773
# ╟─0d70962a-3880-4dee-a439-35068d019f5a
1749
1774
# ╠═113cc425-e224-4f77-bfbd-ef4eb1d1ed70
@@ -1784,7 +1809,7 @@ end
1784
1809
# ╠═17dea9e5-84ea-4476-a318-cc475043c83b
1785
1810
# ╟─5e66e59b-fdb8-4373-b231-097b0227dc5c
1786
1811
# ╠═c47252b9-8869-4878-b9bf-7eeb7ed17c9a
1787
- # ╟─ 227129bc-4415-4240-ad55-815bde65a5a1
1812
+ # ╠═ 227129bc-4415-4240-ad55-815bde65a5a1
1788
1813
# ╠═ce90612e-ffc1-4e30-9d89-531f11fd75eb
1789
1814
# ╟─0a3f5c6c-6e1b-458c-bf91-523a0b639b41
1790
1815
# ╟─43fe89d7-f33e-4dfa-853e-327e981feb1e
@@ -1801,7 +1826,7 @@ end
1801
1826
# ╟─a29d5277-e97a-4cca-8e31-8037f9cfdd80
1802
1827
# ╟─4f7aac13-9e49-4b2b-8d78-53f583f6130a
1803
1828
# ╟─cc7102e1-6af0-43bb-8cf0-43e2cec210e3
1804
- # ╠═ f5d9a4c5-300f-4dae-8507-346ec0b74632
1829
+ # ╟─ f5d9a4c5-300f-4dae-8507-346ec0b74632
1805
1830
# ╟─ec6f1b07-d026-45ca-996d-be7693664cd7
1806
1831
# ╟─dadf1c50-6588-4345-a240-69a72336c7cd
1807
1832
# ╟─d384e3fc-b207-48ce-bc7b-1b47a14b1581
@@ -1874,15 +1899,17 @@ end
1874
1899
# ╟─6c0156a9-7281-4326-9e1f-989efa73bb7b
1875
1900
# ╟─8d3df0c0-eb48-4dae-97a8-8c01f0b0a34b
1876
1901
# ╟─ef6fc423-f1b1-4dcb-a059-276121391bc6
1877
- # ╠═b765dbfe-4e58-4bb9-b1d6-aa4378d4e9c9
1902
+ # ╟─b765dbfe-4e58-4bb9-b1d6-aa4378d4e9c9
1903
+ # ╟─1b869c21-b8cd-4aaa-91a9-370c1b7a3d32
1878
1904
# ╟─dbd41240-9fc4-4e25-8b25-2b68afa679f2
1879
- # ╟─91e3e2b4-7966-42ee-8a45-31d6c5f08121
1880
1905
# ╟─7cc07d1b-7757-4428-8028-dc892bf05f2f
1881
1906
# ╟─e0837338-e657-4bdc-ae91-1de9224da78d
1882
1907
# ╟─64df4678-0721-4911-8289-fb18f55e6657
1883
1908
# ╟─58845ff9-821b-45d4-b5ec-96e1949bb277
1884
- # ╠═ 4d5f44e4-85e9-4985-9b76-73be5e097186
1909
+ # ╟─ 4d5f44e4-85e9-4985-9b76-73be5e097186
1885
1910
# ╟─dd495e00-d74d-47d4-a5d5-422fb147ec3b
1911
+ # ╟─e414c28a-8111-4821-ab25-21aff8289d26
1912
+ # ╟─c13e0f00-d3c4-4f1d-9531-84ed480c81f3
1886
1913
# ╟─7e6c2162-97e9-4835-b650-52c9723c327f
1887
1914
# ╠═1ac164c8-88fc-4a87-a194-60ef616fb399
1888
1915
# ╠═b0ab9327-8240-4d34-bdd9-3f8f5117bb29
0 commit comments