Guile
This mode is built in lem, there is the basic command of start-scheme-repl that launches a basic
REPL interaction.
For a more advance development experience, I highly recommend using the r7rs-swank library.
Here is a configuration example:
(defvar *swank-port* 4015)
(setf lem-scheme-mode::*default-port* *swank-port*
lem-scheme-mode:*use-scheme-autodoc* :auto
lem-scheme-mode:*scheme-swank-server-run-command*
`("guile" "--r7rs"
"-l" ".lem/CUSTOM-PATH/r7rs-swank/guile-swank.scm"
"-c"
,(format nil "(import (guile-swank)) (start-swank ~a)"
*swank-port*))
lem-scheme-mode:*use-scheme-repl-shortcut* t )
The idea is to load the scheme file “guile-swank.scm”, so that the swank server start, for now, the path is concatenated from where the buffer is located, so I recommed to just launch the repl in the tmp buffer.
Launch an interactive REPL with the command scheme-slime, this will start the REPL.
| Key-combination | Function |
|---|---|
| “C-M-q” | scheme-indent-sexp |
| “C-c M-p” | scheme-set-library |
| “C-c M-:” | scheme-eval-string |
| “C-c C-e” | scheme-eval-last-expression |
| “C-x C-e” | scheme-eval-last-expression |
| “C-M-x” | scheme-eval-define |
| “C-c C-r” | scheme-eval-region |
| “C-c C-l” | scheme-load-file |
| “C-c M-c” | scheme-remove-notes |
| “C-c C-k” | scheme-compile-and-load-file |
| “C-c C-c” | scheme-compile-define |
| “C-c Return” | scheme-macroexpand |
| “C-c M-m” | scheme-macroexpand-all |
| “Space” | scheme-insert-space-and-autodoc |
| “M-a” | scheme-autodoc |
| “C-c C-d C-a” | scheme-autodoc-with-typeout |
| “C-c C-d d” | scheme-describe-symbol |
| “C-c C-z” | scheme-switch-to-repl-buffer |
| “C-c z” | scheme-switch-to-repl-buffer |
| “C-c C-b” | scheme-connection-list |
| “C-c g” | scheme-interrupt |