This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+lang/scheme/README.org

4.3 KiB

Scheme layer

Description

This layer adds support for Scheme via Geiser. Note that combined usage of racket-mode and geiser has not been tested.

Features:

  • Support the Scheme compiler Chicken
  • Support for the extension language platform Guile
  • Structuraly safe editing using optional evil-cleverparens

Install

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:

  $ 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

Structuraly safe editing

This layer adds support for evil-cleverparens which allows to safely edit lisp code by keeping the s-expressions balanced.

By default this mode is not activated. You can turn it on locally on the active buffer with SPC m T s (s for safe).

To turn it on automatically for all scheme buffers call the following function in your dotspacemacs/user-config function:

(spacemacs/toggle-evil-safe-lisp-structural-editing-on-register-hook-scheme-mode)

or to enable it for all supported modes:

(spacemacs/toggle-evil-safe-lisp-structural-editing-on-register-hooks)

When enabled the symbol 🆂 should be displayed in the mode-line.

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