I've had a number of developers who wanted to edit their code in vim, emacs or other editors without built-in code assist, inspections and similar. Very few of them were able to produce code of the same quality than comparably skilled developers who were using a good IDE. Their code kept containing bugs of types the tool-using developers simply did not make, or far less frequent.
Slander! Emacs is every bit as capable of code analysis, inspections, refactoring, and similar as any IDE. It is, after all, an entire operating system. The specific package for analysis and inspection is
flymake
or
flycheck
.
emr
does refactoring.
lsp-mode
does language servers for various languages.
yasnippet
does code snippets. There are more. Anyone who is using Emacs and yet, somehow, lacks tooling is using Emacs incompetently.
I could probably write a similar defense for vim, as it does have many competent plugins. But, frankly, the defense works less well there. Usually people who pride selves on their vim use think it's good because it doesn't do much, and that view does deserve your scorn. Frankly, if you are a dev who uses Vim, you probably would be better off with Emacs in
evil-mode
, it is, after all, a better vim; or any IDE with vim emulation, which is, I believe, every IDE.
I'm also surprised that there are no languages that emphasize more the AST and which provide "AST editors". With some "styling" you really could choose to use any syntax you like.
The language is Lisp, and the AST editor is Emacs* in
paredit
mode (which is available for other IDEs as well). It is super handy and powerful.
You also might be interested in
parinfer
, which operates based on indentation.
* Not that these two tools aren't available in something like Intellij, it all just originated in Emacs.
(But perhaps it's because, ultimately, syntax does not matter that much.)
Most of that stuff I just mentioned works so well because of Lisp's syntax. So, no, ultimately syntax matters very much. To the point where such interesting ideas become very difficult given the syntax of the average programming language.
On the other hand,
smartparens
gives the same kind of functionality for other languages (and Lisp too), so perhaps you are right about syntax not mattering too much. (But you will still have to live without
parinfer
)
I'm just not a fan of invisible characters being significant program structure...
Frankly, I think the entire idea of invisible characters is sort of an editor bug...