mirror of
https://github.com/sharkdp/bat.git
synced 2025-08-23 22:42:22 +01:00
.github
assets
diagnostics
doc
examples
src
tests
benchmarks
examples
mocked-pagers
scripts
snapshots
syntax-tests
highlighted
source
ARM Assembly
ASP
AWK
ActionScript
Apache
AppleScript
AsciiDoc
Assembly (x86_64)
Bash
Batch
BibTeX
C
C-Sharp
CMake
CSS
CSV
Clojure
Cpp
CpuInfo
Crystal
test.cr
D
Dart
Diff
Dockerfile
DotENV
Elixir
Elm
Email
Erlang
EtcGroup
Fish
Fstab
GLSL
Git Attributes
Git Config
Git Ignore
Go
GraphQL
Graphviz DOT
Groovy
HTML
Haskell
Hosts
INI
JSON
Java
JavaScript
Jinja2
Julia
Kotlin
Lean
Less
Lisp
Lua
MATLAB
Makefile
Manpage
Markdown
MemInfo
Ninja
OCaml
Objective-C
Objective-C++
PHP
Pascal
Passwd
Perl
Plaintext
PowerShell
Protocol Buffer
PureScript
Python
QML
R
Regular Expression
RequirementsTXT
Ruby
Ruby Haml
Ruby On Rails
Rust
SCSS
SLS
SML
SQL
SSH Config
SSHD Config
Sass
Scala
Svelte
Swift
TOML
Tcl
TeX
Terraform
Textile
TypeScript
VimL
Vue
XML
YAML
Zig
gnuplot
nginx
nim
nix
orgmode
reStructuredText
compare_highlighted_versions.py
create_highlighted_versions.py
regression_test.sh
update.sh
utils
.gitattributes
assets.rs
integration_tests.rs
no_duplicate_extensions.rs
snapshot_tests.rs
tester.rs
.gitignore
.gitmodules
CHANGELOG.md
CONTRIBUTING.md
Cargo.lock
Cargo.toml
LICENSE-APACHE
LICENSE-MIT
README.md
build.rs
118 lines
2.2 KiB
Crystal
118 lines
2.2 KiB
Crystal
# 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)
|