#+TITLE: Extempore layer

#+TAGS: layer|lisp|music|programming

* Table of Contents                     :TOC_5_gh:noexport:
- [[#description][Description]]
  - [[#features][Features:]]
- [[#install][Install]]
  - [[#configuration][Configuration]]
- [[#key-bindings][Key bindings]]

* Description
This layer adds support for the [[https://github.com/digego/extempore][Extempore]] programming environment.

** Features:
- run Extempore (inferior extempore buffer)
- connect to & evaluate code
- eldoc support

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

** Configuration
The only configuration variable you might want to set out-of-the-box is
=extempore-path=, so that you don't have to answer the "which directory?" prompt
every time you call =switch-to-extempore=. You can set it when you add
=extempore= to your =dotspacemacs-configuration-layers= like so:

#+BEGIN_SRC elisp
  (extempore :variables extempore-path "/path/to/extempore/")
#+END_SRC

Alternately, you could set it elsewhere in your init file, or through the
=customize= interface.

There are a few other config variables to tweak, but in most cases the defaults
will be ok if you're just starting out. If you want to see them all, open up
=M-x customize= and look in the =extempore= group.

* Key bindings

| Key binding | Description             |
|-------------+-------------------------|
| ~SPC m c c~ | Switch to Extempore     |
| ~SPC m c j~ | Connect to Extempore    |
| ~SPC m e f~ | Eval current definition |
| ~SPC m e e~ | Eval last sexp          |
| ~SPC m e r~ | Eval region             |
| ~SPC m e b~ | Eval buffer             |
