Support for Live External Editing
Last updated at 6:16 am UTC on 21 March 2007
Mentor
Brian Rice (Google Account: BrianTRice)
Project Outline
Squeak often is criticized for not making itself editable through commonly-used text editors, at least as a live system (and editing file-outs is awkward). Common Lisp has solved this problem through its SLIME Emacs mode and associated Swank protocol for introspection by external IDE's (also used for Eclipse-based editing). The Spoon project solves this between Squeak instances but is not accessible for newcomers. This project involves constructing a similar protocol for Squeak, as well as a system for a common cross-platform editor like Vim or Emacs to edit methods or comments or class definitions in buffers and then pass their contents back to Squeak in the same context. Operation should be able to be driven either entirely from Squeak or entirely from the editor.
Technical Details
- Construct an introspection protocol similar to SLIME's Swank for Squeak.
- Set up a system of editing delegation from Squeak to put method source or class definition into an editor buffer (e.g. Emacs or Vim) and then receive the committed version back for saving.
- Set up a system for another Squeak instance to similarly edit and introspect the original Squeak image (Spoon already covers this, so perhaps there should just be a way to re-use its protocol or delegate).
- Implement a protocol and software for Emacs or Eclipse to drive a Squeak system. This could potentially include browsing itself via OmniBrowser framework.
- Optional: implement a remote debugger and inspector/explorer with associated protocol.
Benefits to the Student
The student would become versed in introspection protocols and serialization as well as designing stateful, context-sensitive protocols. They would also learn to work with and program extensible text editors.
Benefits to the Community
Newcomers would be able to transition into Squeak using their favorite existing editor, making Squeak more approachable.