From b30f9a1677a4726b498828dfab1de2dcfc67c995 Mon Sep 17 00:00:00 2001 From: Spencer Williams <spencerwi@gmail.com> Date: Tue, 6 Oct 2020 22:14:42 -0400 Subject: [PATCH] Add sample Crystal file --- .../syntax-tests/highlighted/Crystal/test.cr | 117 ++++++++++++++++++ tests/syntax-tests/source/Crystal/test.cr | 117 ++++++++++++++++++ 2 files changed, 234 insertions(+) create mode 100644 tests/syntax-tests/highlighted/Crystal/test.cr create mode 100644 tests/syntax-tests/source/Crystal/test.cr diff --git a/tests/syntax-tests/highlighted/Crystal/test.cr b/tests/syntax-tests/highlighted/Crystal/test.cr new file mode 100644 index 00000000..38c53cad --- /dev/null +++ b/tests/syntax-tests/highlighted/Crystal/test.cr @@ -0,0 +1,117 @@ +[38;2;117;113;94m#[0m[38;2;117;113;94m An example file to test Crystal syntax highlighting in bat[0m +[38;2;248;248;242mmy_var [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mNil[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255mnil[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_var_also [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m42[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_other_var [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m4.0[0m[38;2;248;248;242m[0m +[38;2;248;248;242manother_float [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m4.0_f32[0m[38;2;248;248;242m[0m +[38;2;248;248;242manother_float_2 [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m4e10[0m[38;2;248;248;242m[0m +[38;2;248;248;242manother_float_3 [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114m-[0m[38;2;190;132;255m0.5[0m[38;2;248;248;242m[0m +[38;2;248;248;242mbig_one [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m1_000_000.111_111e-4[0m[38;2;248;248;242m[0m +[38;2;248;248;242mternary [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m [0m[38;2;249;38;114m>[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;248;248;242m [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;190;132;255m3[0m[38;2;248;248;242m [0m[38;2;249;38;114m?[0m[38;2;248;248;242m [0m[38;2;190;132;255m4[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_symbol [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m:[0m[38;2;190;132;255mThisOne?[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_other_symbol [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m:[0m[38;2;190;132;255mNo_That_One![0m[38;2;248;248;242m[0m +[38;2;248;248;242mplus [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m:[0m[38;2;190;132;255m+[0m[38;2;248;248;242m[0m +[38;2;248;248;242mminus [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;190;132;255m:[0m[38;2;190;132;255m-[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_string [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mthis string right here, with an interpolated value of [0m[38;2;230;219;116m#{[0m[38;2;230;219;116mmy_var_also[0m[38;2;230;219;116m}[0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_array [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mArray[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;248;248;242m[[0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;190;132;255m2[0m[38;2;248;248;242m,[0m[38;2;190;132;255m3[0m[38;2;248;248;242m,[0m[38;2;190;132;255m4[0m[38;2;248;248;242m][0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_tuple [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mTuple[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;190;132;255m2[0m[38;2;248;248;242m,[0m[38;2;190;132;255m3[0m[38;2;248;248;242m,[0m[38;2;190;132;255m4[0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_named_tuple [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mNamedTuple[0m[38;2;248;248;242m([0m[38;2;190;132;255mone[0m[38;2;190;132;255m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mtwo[0m[38;2;190;132;255m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;230;219;116m"[0m[38;2;230;219;116mone[0m[38;2;230;219;116m"[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mtwo[0m[38;2;230;219;116m"[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_hash [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mHash[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m[38;2;230;219;116m"[0m[38;2;230;219;116mone[0m[38;2;230;219;116m"[0m[38;2;248;248;242m [0m[38;2;248;248;242m=>[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mtwo[0m[38;2;230;219;116m"[0m[38;2;248;248;242m [0m[38;2;248;248;242m=>[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_proc [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mProc[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114m-[0m[38;2;249;38;114m>[0m[38;2;248;248;242m([0m[38;2;248;248;242mx [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mInt32[0m[38;2;248;248;242m)[0m[38;2;248;248;242m{[0m[38;2;248;248;242m [0m[38;2;248;248;242mx [0m[38;2;249;38;114m*[0m[38;2;248;248;242m x[0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m +[38;2;248;248;242mmy_other_proc [0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mProc[0m[38;2;248;248;242m([0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114m-[0m[38;2;249;38;114m>[0m[38;2;248;248;242m{[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mWow, neat![0m[38;2;230;219;116m"[0m[38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m[0m +[38;2;248;248;242mputs my_string[0m +[38;2;248;248;242mputs[0m[38;2;248;248;242m([0m[38;2;248;248;242mmy_string[0m[38;2;248;248;242m)[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;249;38;114menum[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mColors[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[3;38;2;166;226;46mRed[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[3;38;2;166;226;46mGreen[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[3;38;2;166;226;46mBlue[0m[38;2;248;248;242m[0m +[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;249;38;114mclass[0m[38;2;248;248;242m [0m[38;2;166;226;46mGreeter[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;255;255;255m@[0m[38;2;255;255;255minstance_field[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mColors[0m[38;2;248;248;242m:[0m[38;2;248;248;242m:[0m[3;38;2;166;226;46mRed[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;255;255;255m@@[0m[38;2;255;255;255mclass_field[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mColors[0m[38;2;248;248;242m:[0m[38;2;248;248;242m:[0m[3;38;2;166;226;46mGreen[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46minitialize[0m[38;2;248;248;242m([0m[3;38;2;255;255;255m@[0m[3;38;2;255;255;255mname[0m[3;38;2;253;151;31m [0m[3;38;2;249;38;114m=[0m[3;38;2;253;151;31m [0m[3;38;2;230;219;116m"[0m[3;38;2;230;219;116mworld[0m[3;38;2;230;219;116m"[0m[38;2;248;248;242m)[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46mgreet[0m[38;2;248;248;242m [0m +[38;2;248;248;242m puts [0m[38;2;230;219;116m"[0m[38;2;230;219;116mHello, [0m[38;2;230;219;116m#{[0m[38;2;255;255;255m@[0m[38;2;255;255;255mname[0m[38;2;230;219;116m}[0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46mrender_greeting[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m:[0m[3;38;2;253;151;31m [0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mHello, [0m[38;2;230;219;116m#{[0m[38;2;255;255;255m@[0m[38;2;255;255;255mname[0m[38;2;230;219;116m}[0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46mwith_greeting[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114myield[0m[38;2;248;248;242m render_greeting[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46mis_color_default?[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;255;255;255m@[0m[38;2;255;255;255minstance_field[0m[38;2;248;248;242m [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;255;255;255m@@[0m[38;2;255;255;255mclass_field[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46mself.greet_static[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mname [0m[3;38;2;253;151;31m:[0m[3;38;2;253;151;31m [0m[3;38;2;166;226;46mString[0m[38;2;248;248;242m) :[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mUnit[0m[38;2;248;248;242m[0m +[38;2;248;248;242m puts [0m[38;2;230;219;116m"[0m[38;2;230;219;116mHello, [0m[38;2;230;219;116m#{[0m[38;2;230;219;116mname[0m[38;2;230;219;116m}[0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242mgreeter [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mGreeter[0m[38;2;248;248;242m.[0m[38;2;249;38;114mnew[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116mbat[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m[0m +[38;2;248;248;242mgreeter[0m[38;2;248;248;242m.[0m[38;2;248;248;242mwith_greeting [0m[38;2;249;38;114mdo [0m[38;2;248;248;242m|[0m[38;2;255;255;255mgreeting[0m[38;2;248;248;242m|[0m[38;2;248;248;242m[0m +[38;2;248;248;242m puts greeting[0m +[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242mputs [0m[38;2;230;219;116m<<-EOF[0m[38;2;230;219;116m[0m +[38;2;230;219;116m this is a heredoc and it has a value in it of [0m[38;2;230;219;116m#{[0m[38;2;230;219;116mgreeter[0m[38;2;230;219;116m.[0m[38;2;230;219;116mrender_greeting[0m[38;2;230;219;116m}[0m[38;2;230;219;116m![0m +[38;2;230;219;116mEOF[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;117;113;94m#[0m[38;2;117;113;94m This is a command:[0m +[38;2;230;219;116m`[0m[38;2;230;219;116mecho yay![0m[38;2;230;219;116m`[0m[38;2;248;248;242m[0m +[38;2;255;255;255m$[0m[38;2;255;255;255m?[0m[38;2;248;248;242m.[0m[38;2;248;248;242msuccess?[0m +[38;2;248;248;242m[0m +[38;2;248;248;242mmy_color [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mColors[0m[38;2;248;248;242m:[0m[38;2;248;248;242m:[0m[3;38;2;166;226;46mRed[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242mputs [0m +[38;2;248;248;242m [0m[38;2;249;38;114mcase[0m[38;2;248;248;242m my_color[0m +[38;2;248;248;242m [0m[38;2;249;38;114mwhen[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mColors[0m[38;2;248;248;242m:[0m[38;2;248;248;242m:[0m[3;38;2;166;226;46mRed[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m.[0m[38;2;248;248;242mred?[0m +[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mRed[0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mwhen[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mColors[0m[38;2;248;248;242m:[0m[38;2;248;248;242m:[0m[3;38;2;166;226;46mGreen[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m.[0m[38;2;248;248;242mgreen?[0m +[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mGreen[0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mwhen[0m[38;2;248;248;242m [0m[3;38;2;166;226;46mColors[0m[38;2;248;248;242m:[0m[38;2;248;248;242m:[0m[3;38;2;166;226;46mBlue[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m.[0m[38;2;248;248;242mblue?[0m +[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mBlue[0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114melse[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mI dunno, man. Chartreuse? Maroon?[0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;249;38;114mclass[0m[38;2;248;248;242m [0m[38;2;166;226;46mMyGenericClass[0m[38;2;166;226;46m([0m[3;38;2;166;226;46mT[0m[38;2;166;226;46m)[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46minitialize[0m[38;2;248;248;242m([0m[3;38;2;255;255;255m@[0m[3;38;2;255;255;255mwrapped_value[0m[3;38;2;253;151;31m [0m[3;38;2;253;151;31m:[0m[3;38;2;253;151;31m [0m[3;38;2;166;226;46mT[0m[38;2;248;248;242m)[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46mget[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m [0m[38;2;255;255;255m@[0m[38;2;255;255;255mwrapped_value[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46mdo_stuff_with_range[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mr [0m[3;38;2;253;151;31m:[0m[3;38;2;253;151;31m [0m[3;38;2;166;226;46mRange[0m[3;38;2;253;151;31m([0m[3;38;2;166;226;46mInt[0m[3;38;2;249;38;114m|[0m[3;38;2;166;226;46mString[0m[3;38;2;253;151;31m)[0m[38;2;248;248;242m)[0m +[38;2;248;248;242m [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m r[0m[38;2;248;248;242m.[0m[38;2;248;248;242mempty?[0m +[38;2;248;248;242m [0m[38;2;249;38;114mreturn[0m[38;2;248;248;242m [0m[38;2;249;38;114munless[0m[38;2;248;248;242m [0m[38;2;249;38;114m![0m[38;2;248;248;242m([0m[38;2;248;248;242mr[0m[38;2;248;248;242m.[0m[38;2;248;248;242mempty?[0m[38;2;248;248;242m)[0m[38;2;248;248;242m[0m +[38;2;248;248;242m r[0m[38;2;248;248;242m.[0m[38;2;248;248;242meach [0m[38;2;249;38;114mdo [0m[38;2;248;248;242m|[0m[38;2;255;255;255mitem[0m[38;2;248;248;242m|[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m [0m[38;2;246;170;17m/[0m[38;2;246;170;17me[0m[38;2;246;170;17m/[0m[38;2;248;248;242m.[0m[38;2;248;248;242mmatch[0m[38;2;248;248;242m([0m[38;2;248;248;242mitem[0m[38;2;248;248;242m.[0m[38;2;248;248;242mto_s[0m[38;2;248;248;242m)[0m[38;2;248;248;242m[0m +[38;2;248;248;242m puts [0m[38;2;230;219;116m"[0m[38;2;230;219;116m#{[0m[38;2;230;219;116mitem[0m[38;2;230;219;116m}[0m[38;2;230;219;116m contains the letter e![0m[38;2;230;219;116m"[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114melsif[0m[38;2;248;248;242m item[0m[38;2;248;248;242m.[0m[38;2;248;248;242mto_s[0m[38;2;248;248;242m.[0m[38;2;248;248;242mempty?[0m +[38;2;248;248;242m [0m[38;2;249;38;114mbreak[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114melse[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mnext[0m[38;2;248;248;242m [0m[38;2;117;113;94m#[0m[38;2;117;113;94m this is unnecessary, but whatever[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;249;38;114mmacro[0m[38;2;248;248;242m print_range[0m[38;2;248;248;242m([0m[38;2;248;248;242mrange[0m[38;2;248;248;242m)[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114m{%[0m[38;2;248;248;242m [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m i [0m[38;2;249;38;114min[0m[38;2;248;248;242m range [0m[38;2;249;38;114m%}[0m[38;2;248;248;242m[0m +[38;2;248;248;242m puts [0m[38;2;249;38;114m{{[0m[38;2;248;248;242mi[0m[38;2;248;248;242m.[0m[38;2;248;248;242mid[0m[38;2;249;38;114m}}[0m[38;2;248;248;242m[0m +[38;2;248;248;242m [0m[38;2;249;38;114m{%[0m[38;2;248;248;242m [0m[38;2;249;38;114mend[0m[38;2;248;248;242m [0m[38;2;249;38;114m%}[0m[38;2;248;248;242m[0m +[38;2;249;38;114mend[0m[38;2;248;248;242m[0m +[38;2;248;248;242m[0m +[38;2;248;248;242mprint_range[0m[38;2;248;248;242m([0m[38;2;190;132;255m1[0m[38;2;248;248;242m.[0m[38;2;248;248;242m.[0m[38;2;190;132;255m3[0m[38;2;248;248;242m)[0m[38;2;248;248;242m[0m +[38;2;248;248;242mprint_range[0m[38;2;248;248;242m([0m[38;2;190;132;255m1[0m[38;2;248;248;242m.[0m[38;2;248;248;242m.[0m[38;2;248;248;242m.[0m[38;2;190;132;255m3[0m[38;2;248;248;242m)[0m[38;2;248;248;242m[0m diff --git a/tests/syntax-tests/source/Crystal/test.cr b/tests/syntax-tests/source/Crystal/test.cr new file mode 100644 index 00000000..179a5577 --- /dev/null +++ b/tests/syntax-tests/source/Crystal/test.cr @@ -0,0 +1,117 @@ +# An example file to test Crystal syntax highlighting in bat +my_var : Nil = nil +my_var_also : Int32 = 42 +my_other_var = 4.0 +another_float = 4.0_f32 +another_float_2 = 4e10 +another_float_3 = -0.5 +big_one = 1_000_000.111_111e-4 +ternary = 1 > 2 : 3 ? 4 +my_symbol = :ThisOne? +my_other_symbol = :No_That_One! +plus = :+ +minus = :- +my_string : String = "this string right here, with an interpolated value of #{my_var_also}" +my_array : Array(Int32) = [1,2,3,4] +my_tuple : Tuple(Int32, Int32, Int32, Int32) = {1,2,3,4} +my_named_tuple : NamedTuple(one: Int32, two: Int32) = {"one": 1, "two": 2} +my_hash : Hash(String, Int32) = {"one" => 1, "two" => 2} +my_proc : Proc(Int32, Int32) = ->(x : Int32){ x * x} +my_other_proc : Proc(String) = ->{ "Wow, neat!" } +puts my_string +puts(my_string) + +enum Colors + Red + Green + Blue +end + +class Greeter + @instance_field = Colors::Red + @@class_field = Colors::Green + + def initialize(@name = "world") + end + + def greet + puts "Hello, #{@name}" + end + + def render_greeting : String + "Hello, #{@name}" + end + + def with_greeting + yield render_greeting + end + + def is_color_default? + @instance_field == @@class_field + end + + def self.greet_static(name : String) : Unit + puts "Hello, #{name}" + end +end + +greeter = Greeter.new("bat") +greeter.with_greeting do |greeting| + puts greeting +end + +puts <<-EOF + this is a heredoc and it has a value in it of #{greeter.render_greeting}! +EOF + +# This is a command: +`echo yay!` +$?.success? + +my_color = Colors::Red + +puts + case my_color + when Colors::Red, .red? + "Red" + when Colors::Green, .green? + "Green" + when Colors::Blue, .blue? + "Blue" + else + "I dunno, man. Chartreuse? Maroon?" + end + +class MyGenericClass(T) + def initialize(@wrapped_value : T) + end + + def get + return @wrapped_value + end +end + + +def do_stuff_with_range(r : Range(Int|String)) + return if r.empty? + return unless !(r.empty?) + r.each do |item| + if /e/.match(item.to_s) + puts "#{item} contains the letter e!" + elsif item.to_s.empty? + break + else + next # this is unnecessary, but whatever + end + end +end + + +macro print_range(range) + {% for i in range %} + puts {{i.id}} + {% end %} +end + +print_range(1..3) +print_range(1...3)