Editor for Common Lisp code


The purpose of this project is to write a text editor with unique features for editing Common Lisp code.

We are working on Second Climacs which is meant to fulfill these requirements. However, we have extracted many features into separate libraries. As a result, it will require a relatively modest amount of work to create an editor from scratch, perhaps one that works more like Vim than like Emacs.

The idea is to parse Common Lisp code using in incremental version of the Common Lisp read function so as to get a very precise idea of how the underlying Common Lisp system would interpret the code in the editor buffer. This technique is in contrast to those used in most editors such as Emacs. Those other techniques typically use regular expressions, or some other purely text-based analysis to try to determine the meaning of the code. Needless to say, those other techniques fail in many situations.

We ultimately plan to use the Common Boot library in order to analyze the code further, and give additional information to the user, such as the use of undefined variables, or the definition of variables that are not used.

All these computations will be performed at typing speed, thereby avoiding the need to invoke special editor commands to see this information.

The editor buffer implementation is provided by the Cluffer library. Additional functionality on top of Cluffer is provided by the text.editing library . Incremental parsing is accomplished using the Incrementalist library.