mirror of
https://github.com/sharkdp/bat.git
synced 2025-09-04 04:12:31 +01:00
Add sample Crystal file
This commit is contained in:
committed by
David Peter
parent
e6c3f96931
commit
b30f9a1677
117
tests/syntax-tests/source/Crystal/test.cr
Normal file
117
tests/syntax-tests/source/Crystal/test.cr
Normal file
@@ -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)
|
Reference in New Issue
Block a user