Skip to content

Latest commit

 

History

History
38 lines (28 loc) · 1.48 KB

README.mkd

File metadata and controls

38 lines (28 loc) · 1.48 KB

Ash

Ash is a syntactic editor. Instead of working on lines of code, Ash works with the language itself. This makes everything easier, from writing code to refactoring. Ash can simply not produce code that does not parse.

A syntactic editor works by parsing the text in question into a abstract syntax tree. The editor then works by only editing the tree. All navigation and editing is now constrained to work on this tree.

That said Ash is a research project and is therefor created, not to give the best user experience, but to answer a simple set of questions.

  1. It is possible, to create a minimal viable prototype that edits syntax trees instead of text?
  2. How do we navigate in such a syntactic editor?
  3. Are edits more idiomatic, or is the syntactic editor more confusing than working in an normal editor?

I'm going to evaluate the questions, by implementing a very little subset of a functioning editor. The editor will contain the possibility to create, delete and move between nodes.

  • The first milestone is to create a simple editor of expressions.
  • Show off some features that is only possible with a syntax editor, as:
    • Smart navigation. Only move between relevant nodes in the tree.
    • Smart insert. If an insert does not fit. Try to make it fit.
  • Upgrade to javascript to show real-life editing. This might not be realistic within the time frame. But the result would be more compelling.

Notes

  • Order of syntax important, don't be greedy