2015-12-02 14:23:39 +00:00
#+TITLE : Scheme layer
2016-03-31 02:59:55 +00:00
* Table of Contents :TOC_4_gh:noexport:
2017-05-22 14:16:12 +00:00
- [[#description ][Description ]]
2017-08-28 21:58:10 +00:00
- [[#features ][Features: ]]
2017-05-22 14:16:12 +00:00
- [[#install ][Install ]]
- [[#key-bindings ][Key Bindings ]]
- [[#compiling ][Compiling ]]
- [[#navigation ][Navigation ]]
- [[#documentation ][Documentation ]]
- [[#insertion ][Insertion ]]
- [[#macroexpansion ][Macroexpansion ]]
- [[#repl ][REPL ]]
- [[#evaluation ][Evaluation ]]
2015-08-15 04:57:09 +00:00
2015-07-11 01:32:10 +00:00
* Description
2017-08-28 21:58:10 +00:00
This layer adds support for Scheme via [[http://www.nongnu.org/geiser/ ][Geiser ]]. Note that combined usage of racket-mode and geiser has not been tested.
2015-07-11 01:32:10 +00:00
2017-08-28 21:58:10 +00:00
** Features:
- Support the Scheme compiler [[https://www.call-cc.org/ ][Chicken ]]
- Support for the extension language platform [[https://www.gnu.org/software/guile/ ][Guile ]]
2015-07-11 01:32:10 +00:00
2017-08-28 21:58:10 +00:00
* Install
2016-01-06 05:21:55 +00:00
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.
2015-07-11 01:32:10 +00:00
For full Chicken support, the following commands should be run:
#+BEGIN_SRC shell
$ chicken-install -s apropos chicken-doc
$ cd `csi -p '(chicken-home)'`
2016-02-28 23:26:48 +00:00
$ curl https://3e8.org/pub/chicken-doc/chicken-doc-repo.tgz | sudo tar zx
2015-07-11 01:32:10 +00:00
#+END_SRC
* Key Bindings
2016-04-13 03:31:38 +00:00
** Compiling
2015-07-11 01:32:10 +00:00
| 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 |
2015-11-10 02:08:49 +00:00
| ~SPC m s s~ | Select Scheme implementation |
2015-07-11 01:32:10 +00:00
| ~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 |
2015-11-27 04:34:11 +00:00
** 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 |