[Publex-developers] Code Overhauling
Status: Alpha
Brought to you by:
cyqotiq
|
From: Johnathan A. <cyp...@ya...> - 2007-01-15 21:53:50
|
After evaluating several options, I believe I've found a viable solution to serveral problems. Problem #1: Microsoft XML (.NET) does not support processing instructions that begin with <?xml...> Solution: Find an alternative XML parser/validator Problem #2: The editor (XML/SGML/HTML) should support syntax highlighting and code folding for markup nodes. Solution: Use a freely available text editor that supports these features. Problem #3: In order to keep the source code to a minimum, as much as is possible of the above elements needs to be streamlined to be native to this project. Solution: See next paragraph. To solve these problems, the project has turned to using the SharpDevelop TextEditor control. This control has built-in support for code-folding as well as XML highlighting. The XML-based highlighting and folding will also lend support to highlighting and folding for SGML and HTML as well, since it's theoretically possible to implement either of these languages within XML (with a few minor adjustments such as requiring closing </p> for HTML and requiring the ending ?> for PIs in SGML). This leaves only a single problem to be solved. XML parsing is not an easy task, but it appears that our friends at ICSharpCode have taken this task and produced a rather thorough way of tackling this problem. By supporting generic language tools by which to implement any parsible language within SharpDevelop, they have also created a means by which XML (or any structured language) can be highlighted and/or code-folded within their TextEditor control. The solution applies to this project by taking the actions outlined within this post and re-implementing a tailored version of their code that fits in nicely with PubleX. Before any code may be implemented from the SharpDevelop project, a new directory structure will need to be created within PubleX so that navigating the file tree will be as painless as possible. This will require some major "house cleaning" in order for this to work. So I am asking that all developers stop any CVS editing until this can be done. The main file (EditorWindow.cs) that exists now will continue to exist within the UI folder, so any edits to this folder will be permissible, however structural changes to the dependancies may very well change (and break existing code until it can be repaired). With this in mind, it would be in the best interest of the project that no edits be made until after this house cleaning has taken place. I will be working through this week to see that this happens so that the ICSharpCode modules can be tailored to fit our project. I am only awaiting a reply from the ICSharpCode team before I take on this task. Until then, we will still be taking any suggestions and minor modifications to the UI itself. The XML UI modules may also be implemented, provided that the parsing is left as generic as possible so as to make use of our own customized parser after the ICSharpCode modules have been put in place. Sorry for the interruption, but I think that this is the best time to do this, since as of the time of this writing there are only two developers on this project. :) ~~Jason ____________________________________________________________________________________ Food fight? Enjoy some healthy debate in the Yahoo! Answers Food & Drink Q&A. http://answers.yahoo.com/dir/?link=list&sid=396545367 |