Continuing the discussion from Any wheels that need to be redesigned?:
Basic Roadmap
-
First, due to the fact that XML syntax highlighting is likely available for text editors, the XML Code Format needs to be developed first.
- Unicode will also need to be supported to use variable names and comments of the programmer’s native speech. This needs to be ironed out in the other thread.
-
Since this will be using native InterfaceKit anyway, there’s no disadvantage to writing translators to import other programming langjuages as a bonus feature.
-
Refactor a common wrapper class from the Scintilla text editor class and our own code view gadget. (CodeView will inherit from BOutlineListVIew.) That way existing code editors like Koder can use our editor almost out of the box.)
- This may involve using shortcuts based on regular text characters without modifiers so it is easy to enter code quickly. This will map into the intellisense-like features of the current Scintilla API.
-
While writing a compiler frontend for the XML language edited by the editor seems more attractive to me, using a C++20 backend may be useful instead. I’d like to support modules instead of headers and object files as separate. Either way, this step can be concurrent to steps 2 and 3 (if a second programmer wishes to help out).
-
???
-
Profit!
Other Considerations
- The lack of a source-level debug format may require that the debug mode be interpreted instead of compiled at first.
- Another option is to develop a karat position class so that the XML will correlate to the positions of the parameters in each command construct. Modern Clang derivatives and GCC already do this, it just may be tricky on a visual language. This would map directly into the “red squiggly underline” features of Scintilla so the API may need to support it anyway.
- Getting decent icons for the language will need somebody with graphical skills. I’d round this out to a team size of 3 or more ideally but I doubt that will happen currently.
- Compiler developer for the XML language
- Somebody who knows how to use InterfaceKit properly and other Haiku APIs. (This may double duty as integration developer to work with IDEs and Koder APIs to use the class in.)
- Icon designer. (Light duty.)