spacemacs/layers/+lang/scheme
syl20bnr 74fdbb6795 Refactor and simplify company backends declaration
Enabling a company backend for a specific mode was a tedious tasks with code
scattered at different locations, one for local variable definitions, one for
company hook function definitions and another where the backends were pushed to
the local variables (which was problematic, since we ended up pushing the same
backends over and over again with `SPC f e R`, pushes have been replaced by
add-to-list calls in the new macro).

All these steps are now put together at one place with the new macro
spacemacs|add-company-backends, check its docstring for more info on its
arguments.

This macro also allows to define arbitrary buffer local variables to tune
company for specific modes (similar to layer variables via a keyword :variables)

The code related to company backends management has been moved to the
auto-completion layer in the funcs.el file. A nice side effect of this move is
that it enforces correct encapsulation of company backends related code. We can
now easily detect if there is some configuration leakage when the
auto-completion layer is not used. But we loose macro expansion at file loading
time (not sue it is a big concern though).

The function spacemacs|enable-auto-complete was never used so it has been
deleted which led to the deletion of the now empty file core-auto-completion.el.

The example in LAYERS.org regarding auto-completion is now out of date and has
been deleted. An example to setup auto-completion is provided in the README.org
file of the auto-completion layer.
2017-01-02 00:39:04 -05:00
..
config.el Refactor and simplify company backends declaration 2017-01-02 00:39:04 -05:00
packages.el Refactor and simplify company backends declaration 2017-01-02 00:39:04 -05:00
README.org Format documenation files with doc-fmt tool 2016-04-12 23:31:38 -04:00

Scheme layer

Description

A spacemacs contribution layer providing Scheme support via 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:

  $ 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

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