Academic research on structured editors

Triggered by the text vs projectional editors: a list of structure/projectional editor projects in academia.

2 Likes

Hazelnut is a project by Cyrus Omar (Cyrus Omar) and co.

POPL 2017
Hazelnut: A Bidirectionally Typed Structure Editor Calculus
Cyrus Omar, Ian Voysey, Michael Hilton, Jonathan Aldrich and Matthew A. Hammer

POPL 2019
Live Functional Programming with Typed Holes
Cyrus Omar, Ian Voysey, Ravi Chugh and Matthew A. Hammer

It might be good to invite Cyrus for a talk here.

2 Likes

sketch-n-sketch is a project by Ravi Chugh et al.

https://ravichugh.github.io/sketch-n-sketch/

quote:

programming + direct manipulation + html/svg

Direct manipulation interfaces are useful in many domains, but the lack of programmability in a high-level language makes it difficult to develop complex and reusable content. We envision direct manipulation programming systems that allow users the benefits of general-purpose programming languages but with less keyboard-based text editing and more mouse-based direct manipulation. Sketch-n-Sketch is currently a direct manipulation programming system for creating HTML and SVG documents. We imagine similar possibilities for many other programming and design settings as well.

2 Likes

King’s College (but not Laurence Tratt) has made this: https://www.greenfoot.org/frames/

2 Likes

Meinte, yes, a structural editor, but not fully projectional, I think. Very interesting nonetheless, especially with some of the UX ideas and how they are using this for programming education.

Laurie also has his editor composition framework, Eco - Software Development Team: Eco: a Language Composition Editor

1 Like

@steffen.zschaler Personally, I don’t care so much about the distinction between structural (or structured) vs. projectional editing. I haven’t come across a definition of either that makes enough sense to me to be able to see them as fundamentally different. Maybe I didn’t look closely enough, though :wink:

@eelcovisser Thanks for starting this thread.

@meinte.boersma:

King’s College (but not Laurence Tratt) has made this: https://www.greenfoot.org/frames/

I’ve read through the What Is Frame-Based Editing? article and found it very interesting. Although I don’t see these type of editors as good substitution candidates for standard code editors (I just can’t imagine having to sacrifice multi-cursor editing, and those quick hacks that are available in most modern editors), they surely are of great value for many applications, not just for code beginners.

In particular, I was thinking that this approach could be really valuable for editing lightweight markup syntaxes (e.g. AsciiDoc), because they could visually represent a document’s AST, abstract away some formatting constructs (hiding them, to make the document more readable) and enforce consistent syntax styles in source documents.

Undoubtedly, this approach could really turn documents editing into a pleasant experience, lifting some visual strain from it — especially if taking advantage of an HTML5/CSS3 editor component, which would allow styles to be applied to various frames, according to their semantics. It would be an hybrid between a WYSIWYG editor and a classical text editor, taking the best from both worlds: the structural integrity guarantees and style previewing of the former, and the low-level editing capabilities of the latter.

And I’m sure that frames would also allow quicker navigation through long documents, or hiding selected frames or intervals, as well as to easily show related contents as if they visually adjacent. Frames being similar in structure to an HTML page DOM, it’s easy to imagine their manipulation potential.

I’m actually quite surprised that frame-based editing hasn’t been experimented with in digital publishing, for it could make a huge difference in editing DocBook, LaTex, etc.

Frame-Based Editing looks like a hybrid between projectional/structural and textual editing. I find ideas of hybrid editing interesting as they might provide more flexibility than “pure” approaches, like i.e. all text or all projectional or all graphical.