This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+lang/crystal
2018-12-04 22:06:14 -05:00
..
img Add new layer for Crystal language 2018-05-21 03:14:46 -04:00
config.el Add new layer for Crystal language 2018-05-21 03:14:46 -04:00
funcs.el Add new layer for Crystal language 2018-05-21 03:14:46 -04:00
packages.el crystal: fix key bindings not available for play-crystal 2018-06-11 02:15:47 -04:00
README.org documentation formatting: Wed Dec 5 03:03:03 UTC 2018 2018-12-04 22:06:14 -05:00

crystal layer

/TakeV/spacemacs/media/commit/21c442050aabae068a257d31c4868bdbdde8ee23/layers/+lang/crystal/img/crystal.png

Description

This layer provides support for the Crystal language.

Features:

Install

To use this configuration layer, add it to your ~/.spacemacs. You will need to add crystal to the existing dotspacemacs-configuration-layers list in this file.

REPL

To be able to connect to inf-crystal, you need to make sure that icr is installed.

Installation instructions can be found on the main page of icr.

Although not in the installation instruction it seems that on macOS you can install it with Homebrew:

  brew install crystal-icr

Ameba

To be able to use ameba.el, you need to make sure that ameba is installed.

Installation instructions can be found on the main page of ameba.

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add crystal to the existing dotspacemacs-configuration-layers list in this file.

Key bindings

Crystal commands

Key binding Description
SPC m e b play-crystal submit buffer
SPC m e e play-crystal show code in a browser
SPC m e i download play-crystal snippet
SPC m e r play-crystal submit region
SPC m g G jump to definition in other window
SPC m g a jump to matching spec file or back from spec to code file
SPC m g g jump to definition
SPC m t b run crystal spec for the current buffer
SPC m t p run crystal spec for the current project
SPC m u c show context
SPC m u e show macro expansion
SPC m u f format the current buffer
SPC m u i show implementations for given call
SPC m x x run crystal run for the current file

REPL

Start a inferior crystal REPL process with SPC m ' or SPC m s i. Send code to inferior process commands:

Key binding Description
SPC m ' start inferior REPL process
SPC m s B send buffer and switch to REPL
SPC m s F send function definition and switch to REPL
SPC m s R send region and switch to REPL
SPC m s b send buffer
SPC m s f send function definition
SPC m s i start inferior REPL process
SPC m s r send region
SPC m s s switch to REPL

Ameba

Key binding Description
SPC m a d Prompts from a directory on which to run Ameba
SPC m a f Runs Ameba on the current visited file
SPC m a p Runs Ameba on the entire project