Which, beyond Emacs with Paredit, whatever is called Paredit-as-ported-to-vim, and some obscure Smalltalk stuff, generally doesn't exist. So yeah. Stay with Vim or switch to Emacs.
For the purposes of Lisps there's Emacs with Paredit (or other editor with Paredit, there are versions for most of them I think), for the purpose of notes there's Emacs with Org-mode.
For the purpose of Java w.r.t. refactoring and navigation there's Intellij, Eclipse etc.
For the purtpose of Python w.r.t. refactoring and navigation there's Pycharm.
And so on.
I use a combination of (1) Emacs & Org-mode for structured editing of notes and prose, and (2) Whatever IDE is most suited for the language I work in.
Isn't MPS for making weird DSLs that require special tooling, and not for editing your generic code? That was the impression I got after installing it and clicking around + reading some of the documentation.
I understand 'nnq asked for editor treating code as trees; beyond Paredit mode for Lisp code, I'm not aware of anything like that being currently in use for regular code anywhere.
Yes, totally. But as a side effect it's also the best and most usable tool that I've ever seen that lets you edit the syntax tree directly.
In that sense it can be seen as the most extensive exploration of this idea, and it could definitely serve as an inspiration to those who want to make a tree editor. Jetbrains poured some serious time and UX design into how to edit a syntax tree.
It has a decent Java mode for example, which you could use to edit Java sources. It takes some getting used to but it really isn't half bad. You can't write code with it that doesn't parse.
Thanks. I'm going to check it out again, time allowing, and try a small project this time, instead of just casual clicking around. I'm very interested in the space around the idea of more structured code editing and different code presentations.
Thanks, but >100ms latency is not something I can tolerate in a code editor. If I need a heavy IDE I can just run it on an overpowered machine and get to my target latency, but web based makes this unusable...