| Title | Safarà : an Extensible Code Editor for Squeak |
|---|---|
| Student | Luigi Panzeri |
| Mentor | Lukas Renggli |
| Abstract | |
|
Squeak provides a modern open-source development environment for the
Smalltalk programming language. Squeak promote the vision of Smalltalk of a live environment where everything is an object, and anything can change at run-time by letting the user poke in any part of the system and at any time. Furthermore several extensions are provided for a better and innovative approach to development, like refactoring browsers, code linters, smart method finders, version control system at source level, and so on. Despite that new users often complaint about the lack of some features for traditional edit-build-debug development, they found in common IDE for other programming languages. Thus, the need of a new code text editor. Safarà is an add-on component for Squeak whose mission is to create an editor at the level of the great Squeak IDE and the traditional ones. It aims to provide the following features: * Highly configurable and customizable using Smalltalk code or a graphical customization interface. * Highly extensible in term of features and syntaxes supported. * Easily embeddable as a widget in other applications (e.g. mail reader, applications using DSLs, etc.). * Well integrated with the tools present on a traditional Squeak development image. * Support for collaborative editing. My project proposal concerns mainly the design and the implementation of the model representing the informations the editor operates on, like raw data, syntax definitions, clipboards and so on. An implementation of a Morphic view is planned and necessary in order to test the performance and the flexibility of the model. The whole design will be made using the MVC design pattern such that the model will be independent from the particular implementation and libraries used for the user interface. The objective of the proposal is to have a working editor for plain text writing and Smalltalk coding, with a minimal set of features showing the effectiveness of the model. Having a good initial design with clear specifications will help building extensions on top of that. Several other editors, written in other languages have similar features like Eclipse, TextMate, and Emacs, but either they usually don't suit well in a Smalltalk environment, either don't fit well into the Smalltalk development cycle, or they can't be easily extended. |
|