Tree Editor Survey
I intend to build a general purpose
structure editor.
Or projectional editor. Or tree editor.
We have too many names for this thing.
How about we call it an AST editor instead?
Motivation
Eventually I’ll write up my motivation for writing a tree editor, but
in the meantime, here are other people’s similar reasoning:
Survey
Audacious Projects to Reinvent all of Programming
Language Workbenches
Hip Tree Editors
- Isomorf with online demo ([HN][hn:isomorph]). First
impressions: great discoverability (entered a switch statement
without knowing its syntax); annoying to scroll with arrow keys
(inorder navigation); surprisingly difficult to enter numbers; my
fibonacci function failed with an “unevaluatable” error; slow
(sometimes had a half-second delay after keypress, or to fill an
autocomplete box).
- Flense for Clojure, by Max Kreminski
- Plastic for ClojureScript, by Antonin Hildebrand. I’m a
little confused here, because ClojureScript is a compiler, not a
language?
- Cirru: “edit S-Expression and generate Clojure”.
Expands on s-expression syntax to allow indentation to (optionally)
replace parentheses. Has an online demo of a (rather limited) tree
editor.
- Lamdu: tree editor and live coding environment.
- Projectured: a “general purpose tree editor written in
common lisp”.
- Scheme Bricks.
Academic Papers about Tree Editing
Venerable Old Academic Tree Editors
Not quite Tree Editors
- Frame-Based Editing (HN). Every line is text,
but lines are organized into a tree of nested frames.
- Tree Sheets: a free form data organizer, like
spreadsheets but for trees.
- Parinfer: lisp editor that can infer parentheses from
indentation. This sounds scary, but it actually looks very well
designed.
- Paredit is a treeish
editor glued onto emacs for editing elisp and its ilk. It does not
balance parentheses, however. For example, C-w does not preserve
balance.
- Structured Haskell Mode for emacs. I haven’t tested it
yet, but don’t give it good odds of guaranteeing well-formedness.
Quite not Tree Editors
Dead Links
January 25, 2020