Kirill Osenkov

Thesis

Structured editor framework

Source code: https://github.com/KirillOsenkov/StructuredEditor

Screenshots

Research in structured editors

Structured editors can be used to edit source code (C#, Java, etc.), markup (XML, HTML, etc.) or custom domain-specific languages. The difference to text editors is that structured editors directly display the syntax tree (DOM tree) on the screen, instead of using text syntax to separate language constructs.

I am actually building experimental prototypes for C# and XML. The prototypes are already working.

My thesis

In summer 2007 I finished my diploma thesis in computer science with the title: “Designing, implementing and integrating a structured C# code editor”.

For those who want to know more about my thoughts on structured editors, design, architecture, implementation and IDE integration are welcome at www.osenkov.com/diplom - full text of the thesis is online as well.

If you express interest in these topics, feel free to contact me: Kirill Osenkov

Structured editor framework

The editors are based on the structured editor framework that we developed at the Brandenburg University of Technology (Cottbus, Germany). This was a student research project initiated by Prof. Dr. Peter Bachmann. Beside myself, the following people contributed to the framework: Steffen Büchner, Alexandr Kapitanovskyy and Stefan Adam.

Screenshots

This is how the current implementation looks like:

Structured editor screenshot

As you can see, no curly braces { } are displayed, because they are not necessary. Of course, you can turn them on if you feel like:

Structured editor screenshot

And you can automatically format the code the way you like (e.g. leaving the open curly on the same line):

Structured editor screenshot

But actually, you don't need any text delimiters, because you're directly editing the program tree:

Structured editor screenshot

A mixture of display modes is possible as well:

Structured editor screenshot

This is probably a minimalist display mode, very dense and uncluttered:

Structured editor screenshot

And this is how a structured XML editor might look like:

Structured editor screenshot

Structured editor screenshot

Structured editor screenshot