#+TITLE: Scheme layer * Table of Contents :TOC_4_gh:noexport: - [[#description][Description]] - [[#install][Install]] - [[#key-bindings][Key Bindings]] - [[#compiling][Compiling]] - [[#navigation][Navigation]] - [[#documentation][Documentation]] - [[#insertion][Insertion]] - [[#macroexpansion][Macroexpansion]] - [[#repl][REPL]] - [[#evaluation][Evaluation]] * Description A spacemacs contribution layer providing Scheme support via [[http://www.nongnu.org/geiser/][Geiser]]. * Install The scheme layer currently supports: Chicken and Guile. Combined usage of racket-mode and geiser has not been tested. To use this configuration layer, add it to your =~/.spacemacs=. You will need to add =scheme= to the existing =dotspacemacs-configuration-layers= list in this file. For full Chicken support, the following commands should be run: #+BEGIN_SRC shell $ chicken-install -s apropos chicken-doc $ cd `csi -p '(chicken-home)'` $ curl https://3e8.org/pub/chicken-doc/chicken-doc-repo.tgz | sudo tar zx #+END_SRC * Key Bindings ** Compiling | Key Binding | Description | |-------------+----------------------------| | ~SPC m c c~ | Compile current buffer | | ~SPC m c p~ | Add directory to load path | ** Navigation | Key Binding | Description | |-------------+---------------------| | ~SPC m g g~ | Goto Definition | | ~SPC m g b~ | Go Back | | ~SPC m g m~ | Goto Module | | ~SPC m g n~ | Goto next error | | ~SPC m g N~ | Goto previous error | ** Documentation | Key Binding | Description | |-------------+------------------------------------------| | ~SPC m h h~ | Docs for symbol at point | | ~SPC m h d~ | Look up manual entry for symbol at point | | ~SPC m h m~ | Display exports for module | | ~SPC m h <~ | Display callers | | ~SPC m h >~ | Display callees | ** Insertion | Key Binding | Description | |-------------+---------------| | ~SPC m i l~ | Insert Lambda | ** Macroexpansion | Key Binding | Description | |-------------+------------------------------| | ~SPC m m e~ | Macroexpand last sexp | | ~SPC m m f~ | Macroexpand surrounding sexp | | ~SPC m m r~ | Macroexpand region | ** REPL | Key Binding | Description | |-------------+------------------------------------------| | ~SPC m s i~ | Start or switch to the REPL | | ~SPC m s s~ | Select Scheme implementation | | ~SPC m s b~ | Send buffer to the REPL | | ~SPC m s B~ | Send buffer to the REPL and focus it | | ~SPC m s f~ | Send definition to the REPL | | ~SPC m s F~ | Send definition to the REPL and focus it | | ~SPC m s e~ | Send last sexp to the REPL | | ~SPC m s r~ | Send region to the REPL | | ~SPC m s R~ | Send region to the REPL and focus it | ** Evaluation | Key Binding | Description | |-------------+---------------------------| | ~SPC m e b~ | Evaluate the whole buffer | | ~SPC m e e~ | Evaluate last sexp | | ~SPC m e f~ | Evaluate current function | | ~SPC m e l~ | Evaluate line | | ~SPC m e r~ | Evaluate region |