This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.
If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.
Provides a SWANK server allowing the use of SLIME with Chicken Scheme.
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:
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.
- 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.
- 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.
- 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.
- hit C-c C-c when running code in the REPL to interrupt the Scheme process.
- Bug fixes and updates for latest SLIME
- Initial release