I think this is one of my favorite features that we've added to Light Table recently and it shows one of the benefits of being connected to a running process of the language you're working with: you can use the tools of that language to write code for you. There's nothing that makes this Clojure specific - you could do these same things in any other language too.
actually the tools for doing this in other languages have gotten a lot better than they used to be. Using esprima you can do some pretty neat code rewriting in JavaScript and Python includes ast tools in the standard lib. Plus if more new languages start to include things like gofmt by default then we'll end up with more of this stuff as first class. Either way though, it's nearly always the case that the platform itself has the best tools for doing this, so at the very least if gives you the best possible chance. :)
Comments
I think this is one of my favorite features that we've added to Light Table recently and it shows one of the benefits of being connected to a running process of the language you're working with: you can use the tools of that language to write code for you. There's nothing that makes this Clojure specific - you could do these same things in any other language too.
OP here: thanks Chris for the amazing capabilities in Light Table. It is the piece of software I'm most excited about these days.
You are quite welcome! And that's what I love to hear - we're pretty excited too :)
Just had his conversation with a coworker, I've never felt comfortable editing any of the my other IDE's including my favorite VIM.
Lighttable's datastructure based configuration makes it so nice.
Thanks Chris & Co. keep up the awesome!
Emacs has made people comfortable modifying it for decades.
I would imagine that it works particularly well for lisps, since lisps can easily transform running code to source code and vice versa.
actually the tools for doing this in other languages have gotten a lot better than they used to be. Using esprima you can do some pretty neat code rewriting in JavaScript and Python includes ast tools in the standard lib. Plus if more new languages start to include things like gofmt by default then we'll end up with more of this stuff as first class. Either way though, it's nearly always the case that the platform itself has the best tools for doing this, so at the very least if gives you the best possible chance. :)