chickadee » slime

slime

Description

Provides a SWANK server allowing the use of SLIME with Chicken Scheme.

Author

Nick Gasson

Requirements

Documentation

First you must install SLIME using a CVS checkout and make sure it is on your Emacs load-path. For example:

(add-to-list 'load-path "~/.emacs.d/slime")    ; Where you installed SLIME

SLIME can be customised by enabling and disabling various features, the following is a good initial setup:

(require 'slime)
(slime-setup '(slime-fancy slime-banner))

Consult the SLIME manual for more detailed setup instructions.

The Egg provides a wrapper chicken-slime.el package that should be loaded like this:

(add-to-list 'load-path "/var/lib/chicken/7/")   ; Where Eggs are installed
(autoload 'chicken-slime "chicken-slime" "SWANK backend for Chicken" t)

We also want to enable the SLIME minor mode in Scheme files:

(add-hook 'scheme-mode-hook
          (lambda ()
           (slime-mode t)))

If your csi executable is not somewhere on the PATH you must set it explicitly like this:

(setq slime-csi-path "/path/to/bin/csi")

For documentation commands the chicken-doc Egg must be installed and configured. See the chicken-doc-admin page for instructions.

Now you should be able to start a Chicken REPL in SLIME using:

M-x chicken-slime

For detailed SLIME usage you are recommended to read the SLIME manual. Note that not all SLIME commands are supported in the Chicken implementation and some are applicable only to Common Lisp. The next section outlines the features that are implemented.

Supported Commands

Loading files and definitions
use C-c C-l to load the current file into the Chicken REPL; C-c C-c loads the top-level definition surrounding the point.
Evaluation
use C-c C-x to evaluate the expression before the point; C-c C-r to evaluate the current region; C-c C-e to evaluate an expression from the minibuffer; C-c C-p to evaluate the expression before the point and pretty-print the results in a new buffer.
Argument hints
start typing an expression (e.g. (call/cc... )) and the argument list will appear in the minibuffer. Note the function must be compiled with debug information.
Tab completion
hit M-Tab in a Scheme buffer or Tab in the REPL and the string preceding the point will be auto-completed.
Basic SLDB support
if an error is thrown when evaluating an expression, an SLDB buffer will pop up showing the call chain. If you are using Chicken version 4.6 or later pressing enter on lines with "[ more... ]" will display a list of lexical variables in that scope. Hit q to exit SLDB and return to the REPL top level.
Documentation
when the point is over a symbol hit C-c C-d d to display the chicken-doc for that symbol. To search the chicken documentation hit C-c C-d a and type a regexp or part of the symbol and an apropos buffer will display the list of matches.
REPL
hit C-c C-c when running code in the REPL to interrupt the Scheme process.

License

MIT

Version history

1.2
Bug fixes and updates for latest SLIME
1.0
Initial release