chicken-scheme

Homepage: http://github.com/dleslie/chicken-scheme

Author: Daniel Leslie

Updated:

Summary

Scheme-mode extensions for Chicken Scheme

Commentary

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.

Dependencies