Interactive console for Crystal Programming Language.
- How does it work?
- Commands and special locals
- Update check
- Editor Integration
It's like irb, but for Crystal:
Require local files
You can require local files by relative path (starts with
Libs can also be required from the cli:
$ icr -r colorize -r ./src/my_cool_lib
- The latest version of crystal.
- Readline (for Debian/Ubuntu install
- LLVM development files.
Clone the repo:
git clone https://github.com/crystal-community/icr.git
Switch to repo-directory:
sudo make install
As a shard dependency
If you would like to include icr as a dependency, you can add it to your
dependencies: icr: github: crystal-community/icr branch: master
Then just run
shards install from your project!
Arch Linux users can install ICR from AUR.
How does it work?
- Every time you press
Enterit adds a new instruction, generates a new crystal program, and executes it.
- The output is split into 2 parts: regular program output (e.g. output from
puts 10) and the value returned by the last command.
- The regular output is saved, and when you type a new instruction, a new program is generated. The saved output is subtracted from the new output, and the difference is printed out. It creates an illusion that only new instructions are executed :)
Commands and special locals
paste- enables paste mode
debug- toggles debug mode off and on. In debug mode icr will print the code before executing it
exit- exits current interactive console
reset- clears out all of the accumulated commands
__- holds the result of the last expression. Example:
icr > "5" + "2" => "52" icr > __.to_i - 10 => 42
ICR periodically checks for the new releases on Github. If your current version is out of date, it will simply show you a notice at start.
You can disable this behavior using
--disable-update-check CLI flag.
To run tests:
- inf-crystal.el - Connects REPL buffer to the ICR subprocess in Emacs
- greyblake Potapov Sergey - creator, maintainer
- BlaXpirit Oleh Prypin - fixes for Crystal 0.16
- puppetpies Brian Hood - support of records
- jwoertink Jeremy Woertink - support of -r option and number of other contributions
- veelenga V. Elenhaupt - maintenance
- MakeNowJust TSUYUSATO Kitsune - syntax highlight support