Skip to content

Latest commit

 

History

History
156 lines (121 loc) · 6.47 KB

survey.md

File metadata and controls

156 lines (121 loc) · 6.47 KB

Synless

Synless will be 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?

This page is my partial categorization of tree editors. I made it before discovering the Reddit list of projectional editors, however, which is a much more complete list. You should probably go there instead.

Collaborative Editors

Here's a collaborative rich text editor.

Motivation

Here are some other people's motivation for writing a tree editor:

Survey

See also the Reddit list of projectional editors.

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

Itty Bitty Prototypes that Get It

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

TODO