Skip to content

yairchu/awesome-structure-editors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Awesome Structure Editors Awesome

A list of structural/projectional code editor projects.

Any comments, suggestions? Let us know!

Contents

Foreword

Projectional editing is how almost all document editing applications work nowadays, except for editing source code and text documents, where it is still common to edit plain text files that are parsed to render/compile the result.

This document is a list of projects trying to bring the projectional/structural approach to source code editing.

As evident from the wealth of ongoing and concluded attempts listed below, this problem appears to be either difficult, or impossible. Hopefully one or more of these projects will succeed in realising it and bringing it to the mainstream!

Structural code editor projects

This list includes projects which are actively developed or were maintained recently. Currently the bar for incomplete projects is set arbitrarily at 2020.

Project properties are summarized using unicode/emoji 'flags':

  • Project structure: πŸ’΅ Commercial, πŸŽ“ Academic, β™‘ Accepts donations
  • UX: πŸ“– Uses text files, ‴️ Visual programming, ⌨️ Text editing like UX
  • Target languages: πŸ‘Ά New language, Ξ» Functional, ⦅ Lisp-based, β˜• JavaScript/TypeScript, 🧰 Language Workbench
  • Platform support: 🌐 Works in browser, πŸͺŸ Microsoft Windows only
  • Other: πŸ”¨ Is in some production use, πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Not intended for programmers, ζ–‡ Localization support
Project Properties Description Written in ⭐️ Updated
Enso πŸ’΅ πŸ“– ‴️ πŸ‘Ά Ξ» Hybrid visual+textual programming language Scala, Rust 7441 2025
Unison πŸ’΅ πŸ“– πŸ‘Ά Ξ» Code database projected to text-files edited in your text editor of choice. Originally centered around having a projectional editor, but pivoted to creating a cloud programming language first Haskell 6206 2025
Unit ‴️ πŸ‘Ά 🌐 A general purpose visual programming system TypeScript 4379 2025
Lamdu β™‘ ⌨️ πŸ‘Ά Ξ» ζ–‡ Language with live programming and novel UX for type errors Haskell 1873 2025
MPS πŸ’΅ ⌨️ 🧰 πŸ”¨ Language workbench for projectional languages Java 1615 2025
Cursorless β™‘ πŸ“– πŸ”¨ Spoken language for structural code editing TypeScript 1266 2025
Hazel πŸŽ“ ⌨️ πŸ‘Ά Ξ» 🌐 Language with live programming and typed holes Reason 1038 2025
Sapling ⌨️ Vim/Kakoune-inspired modal structured editor for existing languages Rust 757 2025
JOY.js β™‘ πŸ‘Ά 🧰 🌐 πŸ”¨ πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Language workbench for programmable demos JavaScript 568 2018
Fructure ⦅ 🧰 A projectional editor workbench for Racket-implemented languages Racket 480 2024
SplootCode ⌨️ 🌐 A structural editor for Python, aimed towards beginners TypeScript 457 2024
tylr πŸŽ“ ⌨️ Ξ» 🌐 A tiny tile-based editor for well-formedly manipulating sequences of tokens Reason 309 2025
Eyg πŸ‘Ά Ξ» 🌐 Minimal language to enable exploration of alternative editing methods Gleam 248 2025
Cirru ⦅ A tree editor for ClojureScript Clojure 229 2025
Holbert πŸŽ“ 🌐 A graphical interactive proof assistant designed for education Haskell 169 2024
Vlojure ‴️ ⦅ 🌐 A novel visual UX for ClojureScript Clojure 146 2022
ProjecturEd πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ General purpose projectional editor Common Lisp 141 2022
Tofu β™‘ β˜• VSCode extension for structured editing of JavaScript and TypeScript TypeScript 102 2024
Subtext πŸ‘Ά A series of inspiring presentations and projects exploring ideas in projectional editing TypeScript 101 2022
Envision πŸŽ“ πŸ‘Ά Editor for a Java/C++ like language C++ 99 2022
Pantograph πŸŽ“ ⌨️ πŸ‘Ά Ξ» 🌐 A fluid and typed structure editor PureScript 93 2025
Freon ⌨️ 🧰 🌐 Web-based Projectional Language Workbench TypeScript 71 2025
Forest β˜• 🌐 A prototype tree editor for TypeScript TypeScript 60 2023
Lisperanto β™‘ ⦅ 🌐 IDE for Lisp-like language JavaScript 45 2025
Foundry Ξ» A projectional editor for the Morte language Haskell 29 2025
Gopcaml-mode πŸ“– Ξ» πŸ”¨ Structural editing Emacs plugin for OCaml code OCaml 23 2022
Frugel πŸŽ“ ⌨️ πŸ‘Ά Ξ» A research exploring a novel UX for textual entry of code Haskell 19 2022
Javardise πŸŽ“ πŸ“– Editor for a subset of Java Kotlin 6 2025
Algot πŸŽ“ πŸ‘Ά ‴️ πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ 🌐 A live, graph-based language for programming by demonstration ? ? 2024
Flowgorithm πŸ‘Ά ‴️ πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ ζ–‡ πŸͺŸ An Educational, flowcharts based graphical language ? ? 2024
Alfa πŸŽ“ Ξ» An editor for Agda which doesn't allow incorrect code Haskell - 2020
OCell πŸ‘Ά 🌐 ? ? - 2020

Unreleased Projects

Project Properties Description
Roc Ξ» A performance oriented functional programming language with a structural editor.
Neurion πŸ’΅ πŸ‘Ά Ξ» TODO

Concluded or inactive projects

Project Time_Period Properties Description
Darklang Classic 2017 - 2024 πŸ’΅ ⌨️ πŸ‘Ά Ξ» 🌐 Platform and language as a service for app backends and web with structural editor. Transitioned to text-based editing.
Inflex 2020 - 2022 πŸ’΅ 🌐 πŸ‘Ά Ξ» A spreadsheet-inspired functional programming language
Intentional software 1990s - 2017 πŸ’΅ Started as a Microsoft project to develop a projectional editor in the late 1990s (see video from 2000), which later spun up as an independent company, which later pivoted to develop a language workbench. Despite being founded and self-funded by a Billionaire, it was ultimately acquired by Microsoft at 2017, with the original projects being cancelled (afaik).
Eve 2014 - 2018 πŸ’΅ πŸ‘Ά A startup that made a series of experimental programming systems and was shut down in 2018.
Prune 2015 An internal research project in Facebook. Concluded in it 'being promising' but according to them 'programmers don't spend that much time manipulating programs compared to all the other things they do. Enabling programmers to do a 50% better job of a task requiring 10% of their time just doesn't make economic sense' (redacted quote).
Novella 2019 - 2020 A structural editor infrastructure, in 2020 author moved on to develop Inflex instead.
Expressions of Change 2017 - 2018 TODO
Isomorf 2017? πŸ’΅ 🌐 πŸ‘Ά Ξ» A startup developing an in-browser editor for a language that can appear in a syntax of the user's choosing among a few options appearing like different popular programming language
Omni 2013 - 2017 πŸ‘Ά TODO
Viskell 2015 - 2017 Ξ» Visual programming meets Haskell
Zinal 2015 - 2017 πŸ‘Ά TODO
Golem 2014 - 2016 πŸŽ“ πŸ“– ⌨️ πŸ‘Ά Ξ» ⦅ 🌐 Online tree editor and debugger for Shem, a functional LISP-like language which compiles to JavaScript
Cedalion ? - 2013 πŸŽ“ πŸ‘Ά TODO
TFlow 1994 - 1995 πŸ’΅ πŸ‘Ά ‴️ 🌐 πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ ζ–‡ Educational Graphical flow-chart based programming language with interpreter and Arduino-like compiler

Blocks Programming Editors

Blocks Programming languages/editors are a specific kind of structural programming editors, where the code is structured in a manner similar to 'lego blocks' supporting 'drag and drop' editing.

System Properties Written in
Alice πŸŽ“ Java
Hopscotch πŸ’΅ ?
Microsoft MakeCode πŸ’΅ πŸ‘Ά 🌐 ?
Scratch πŸŽ“ ζ–‡ πŸ‘Ά 🌐 JavaScript
Snap πŸŽ“ ζ–‡ 🌐 ?

Spreadsheet-based projects

System Properties Written in
Flowsheets ?
Mesh JavaScript
Object Spreadsheets πŸŽ“ TypeScript

Other notable projects

Not sure in which category these projects fit in:

System Properties Description Written in
Apparatus πŸŽ“ 🌐 Hybric diagrams editor CoffeeScript
Cycle.js Dev Tools β™‘ Dataflow debugging TypeScript
JSON Editor 🌐 JSON schema-based editor JavaScript
Greenfoot/BlueJ πŸŽ“ Structure-text hybrid Java

Resources

Related lists

Community

About

A list of projectional and structural editors

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 15

Languages