Closed atroche closed 9 years ago
It is too early. I'm still experimenting. A content produced today would become obsolete really quickly.
It will implement paredit operations. I hope to provide better editing model by designing the editor around tree operations, not editing underlying text buffer.
@darwin I'll be very excited to see some progress around this. A tiny progress video would be awesome.
I've been long thinking about structural editing. So far nothing has come close to how things should be! :) this holds promise! :+1:
@GetContented I'm glad you are interested. I'm sorry, I'm not ready to demo it yet.
There were many attempts to bring structural code editing to mainstream and all failed before AFAIK. This one will probably fail too. The fundamental problem which is still unsolved is described here, I think: http://boxbase.org/entries/2015/feb/2/bottom-up-down-dissonance. I have some ideas, I would like to try in this prototype, but I'm not there yet. Need to build some foundation first.
Think about it.
I've been thinking about this problem for the last ten or twenty years. You're right in that the navigation and operations are the most tricky part. However, I think perhaps the problem is that the types of things we call "edits" are much more complicated than one would ordinarily think about.
For example, in clojure, it's often a fairly common thing to "wrap in a let form". This is a compound operation in a normal text editor, involving many operations. It really should only be one operation, though, and if one had a structural editor, it would be. "editing" becomes a kind of a programming language (sequences of operations).
If one pays a lot of attention to the intent of what one is doing as one is doing it, one notices these intention semantics all the time. It's not just limited to programming, either. It's any writing I do.
However, I've also been thinking about a model for expressing any programming intent in. I program in several languages, and I'm usually pretty annoyed that I have to rewrite the same code over and over, at different abstraction levels.
Anyway, that's another story.
Thanks for the reply. :) I'll look forward to what you might do.
Or even a description of what it does differently to paredit?