About QCodeEdit

QCodeEdit is a framework designed to make edition of source code easy for both users and developers.

It is written in C++ using the Qt 4 framework which make it cross-platform.

QCodeEdit has been designed for three main purposes : efficiency, flexibility and ease of use.

Indeed QCodeEdit is much more lightweight and significantly faster than QTextEdit/QTextDocument. However it also has different goals and thus limitations. QCodeEdit is meant to work with source files and not any kind of rich text like QTextEdit handles so well.

The flexibility is achieved through a system of panels which allow the editing widget to be extended in a number of ways. The default panels include line numbering, line marks, code folding indicators, modification indicators, inline search, and status. Besides, QCodeEdit aims to provide the best possible source code editing experience while taking some heavy work off the developer. To that end it features a great syntax engine which achieves not only highlighting but also brace matching, auto indentation and code folding. While such features would require writing parsers and using nasty tricks to work with QTextEdit, they only require a single syntax file to work with QCodeEdit. These XML files describes the langage in a simple hierarchical way to QCodeEdit so that it can generate automatons and provide all the aforementioned features out of the box.

Ease of use has two sides. First of all, it must be easy for the developer to integrate QCodeEdit into an application. Hence the decision to design QCodeEdit API to closely follow QTextEdit/QTextDocument one so that user familiar with Qt will have little, if any, problems to move to QCodeEdit. Then, users must feel familiar. To achieve this, QCodeEdit uses the same key bindings as QTextEdit. To improve user experience QCodeEdit also bring a couple of unique features, such as cursor mirrors, column selection and column editing which may help the automation of tedious editing tasks.

QCodeEdit is being developed as part of the Edyuk IDE. It is available for free (as in free beer AND as in free speech) under the GNU General Public License. It is however possible to get a more liberal license for a small fee. For more informations contact the author : Luc Bruant aka fullmetalcoder