Advanced Spin Editor - Project Proposal
Since I'm not very comfortable with the current development tools available for P2 (and P1 for that matter) for various reasons, I started to develop my own tool and want to share what I would like to do, and see if there is interest in such thing.
The base idea for this tool is to have a more advanced source code editor with context sensitive syntax highlight, code assist and continuous real-time compile and error checking (i.e. no need to push a button to compile and see the result).
This is the current tool layout, with basic syntax highlight (provisional name):
It is possible to note how local and parameter variables are differentiated, as well as pri and pub methods (pri are italic).
Moving the mouse over a function or pasm instruction shows a popup description:
If the parser/compiler detects an error, it is highlighted and a popup description linked to it:
Code assist shows a list of candidates with the associated description:
The tool is written in Java with Eclipse SWT (Standard Widget Toolkit) for the native look and feel and can be built for Linux, Windows and Mac-OS for a truly multi-platform tool. I don't have a ready-to-test example to share but if you are interested I can build something in the next days.
Initially I would like to provide a front-end interface for the existing tools (mainly openspin for P1 and flexspin for P1/P2 because those are the only multi-platform tools I know of), then have an integrated compiler to support all functions. I have successfully implemented a P2/PASM compiler that, while not yet fully tested, can compile existing sources (tested with my own code and the Spin2 interpreter source) generating binary-exact files. This is somewhat easy to do, compiling spin is another story.
It would also be nice to have an integrated debugger for P2 able to step through code while running.
At the current stage, the tool is just a bit more of a proof of concept rather than an usable tool. The scope of this post is first to check if there is a general interest in having something like that, and, maybe more important, to see what kind of collaboration is possible to develop the things I have in mind. Collaboration that can span from active code contribution to financial support because I won't hide that, with all good will, I can't develop such a thing just for pride and glory. I would like to make it at least a free-to-use product, possibly open source, but I can't dedicate months to it for free.
So, to recap the planned features:
- Support for P1 and P2
- Context sensitive syntax highlight
- Context sensitive code assist
- Integrated compiler with realtime error checking
- Seamless serial terminal emulation
- Support for openspin and flexspin external compilers
- Integrated help
What do you think ?