Redshank: Common Lisp Editing Extensions (for Emacs)

Redshank is a collection of code-wrangling Emacs macros mostly geared towards Common Lisp, but some are useful for other Lisp dialects, too. Redshank's code transformations aim to be expression-based (as opposed to character-based), thus it uses the excellent Paredit mode as editing substrate whenever possible.

Features include:

Skeletons for mode lines, ASDF:DEFSYSTEM , DEFPACKAGE, IN-PACKAGE, DEFCLASS, slot forms, etc., with completion

, DEFPACKAGE, IN-PACKAGE, DEFCLASS, slot forms, etc., with completion Some mild (Common Lisp) refactoring support: Semantics-preserving rewriting of forms (IF to COND, WHEN NOT to UNLESS, etc.) Extracting marked regions to DEFUNs, with free variables becoming arguments of the extracted function Extracting forms to LET-bound variables of the nearest enclosing LET block

Alignment of DEFCLASS slots

MCL-style Mouse Copy function

Screencast

Generated by pyvnc2swf -0.9.2

Download

The easiest way to keep up with new Redshank features is to track the development version.

git clone http://www.foldr.org/~michaelw/projects/redshank.git

Prerequisites

Redshank is developed and tested with GNU Emacs 24.0.50.1. Patches to ensure interoperability with other versions of GNU Emacs and XEmacs are welcome.

The number of Elisp library dependencies is fairly small:

Paredit

At least version 21 of Paredit is required.

cl, skeleton, easymenu

These come with GNU Emacs 22.

SLIME

SLIME is optional, but recommended to activate all features of Redshank. As of this writing, the latest release of SLIME (2.0) is very outdated, thus Redshank requires a recent CVS snapshot of SLIME. Instructions can be found at the SLIME homepage.

Common Lisp

Some features require interoperation with a Common Lisp implementation, via SLIME. This has been tested and is known to work with at least SBCL 1.0.10, OpenMCL 1.1-pre-070722 (DarwinX8664), and CLISP 2.40, albeit with varying degrees of support.

The currently best supported implementation is SBCL. Patches to support other implementations are very welcome. (See file redshank.lisp for the Lisp side support.)

Steel Bank Common Lisp (SBCL)

Download SBCL.

OpenMCL

Download OpenMCL.

CLISP

Download CLISP.

Contact

Send questions, bug reports, comments and feature suggestions to Michael Weber.