# Racket contribution layer for Spacemacs
![logo_racket](img/racket.png)
**Table of Contents**
- [Racket contribution layer for Spacemacs](#racket-contribution-layer-for-spacemacs)
- [Description](#description)
- [Install](#install)
- [Key Bindings](#key-bindings)
- [Navigation](#navigation)
- [Documentation](#documentation)
- [Tests](#tests)
- [REPL](#repl)
- [Other key bindings](#other-key-bindings)
## Description
Adds support for the [Racket](http://racket-lang.org/) programming language.
## Install
To use this contribution add it to your `~/.spacemacs`
```elisp
(setq-default dotspacemacs-configuration-layers '(racket))
```
## Key Bindings
### Navigation
Key Binding | Description
----------------------|------------------------------------------------------------
SPC m g ` | Return to previous location
SPC m g g | Go to definition of symbol at point
SPC m g m | Go to module at point
SPC m g r | Open require path
### Documentation
Key Binding | Description
----------------------|------------------------------------------------------------
SPC m h d | Describes the function at point in a `Racket Describe` buffer
SPC m h h | View documentation of the identifier or string at point.
### Tests
Key Binding | Description
----------------------|------------------------------------------------------------
SPC m t b | Run tests of buffer
SPC m t B | Run tests of buffer with coverage
### REPL
Key Binding | Description
----------------------|------------------------------------------------------------
SPC m s b | Send buffer to REPL
SPC m s B | Send buffer to REPL and switch to REPL buffer in `insert state`
SPC m s e | Send last sexp to REPL
SPC m s E | Send last sexp to REPL and switch to REPL in `insert state`
SPC m s f | Send function at point to REPL
SPC m s F | Send function at point and switch to REPL in `insert state`
SPC m s i | Start a REPL or switch to REPL buffer
SPC m s r | Send region to REPL
SPC m s R | Send region to REPL and switch to REPL in `insert state`
SPC m s s | Show and switch to REPL buffer
### Other key bindings
Key Binding | Description
----------------------|------------------------------------------------------------
SPC m i l | Insert lambda character
H-r | Run current file and open REPL (`H` is hyper, *may* be bound to command on OSX)