You are looking at historical revision 31662 of this page. It may differ significantly from its current revision.

Available on Marmalade, MELPA and GitHub. A suite of extensions for scheme-mode that grew out of necessity.

Chicken Scheme does play well with SLIME (See also: chicken-slime.el), but I often find myself working on software that is slow-level and unstable enough to make such dependence on REPL reliability rather frustrating.

Thus chicken-scheme.el was born. It does not rely on a running Scheme to provide auto-complete support for your application. A suite of customization variables are available to configure from which modules symbols should be loaded and what sort of package prefixes can be expected.

Auto-complete is configured to support prefixed symbols, to allow for full recognition of symbols in modules that may have been imported with a prefix modifier. The `chicken-prefix` variable may be customized to declare what characters can be used as prefix delimiters.

Calling documentation for the symbol at the current point is possible with:

chicken-show-help

Further customization is available in the chicken-scheme customization group.

Loading of the first scheme file may take some time as the Chicken Modules are parsed for symbols on first-load. All subsequent scheme files do not incur this load hitch. Consider running an Emacs daemon.

Installation: Place in your load path. Add the following to your .emacs:

(require 'chicken-scheme)
(add-hook 'scheme-mode-hook 'setup-chicken-scheme)
(define-key scheme-mode-map (kbd "C-?") 'chicken-show-help)

If you don't like auto-complete, or don't want to have both R7RS and R5RS symbols loaded, then don't add the setup-chicken-scheme hook. Instead, the following utilities are available:

ac-source-chicken-symbols
ac-source-r5rs-symbols
ac-source-r7rs-symbols
ac-source-chicken-symbols-prefixed
chicken-show-help
chicken-fix-font-lock

Prefixed symbols are those which have been mutated after importing a library. See the chicken-prefix custom variable for customization options.

I recommend you also add the following:

(add-hook 'scheme-mode-hook 'enable-paredit-mode)
(add-hook 'scheme-mode-hook 'rainbow-delimiters-mode-enable)

This packages plays very well with the chicken-slime package.