Earlier quoted context omitted.
I wonder why there aren't more tools to allow structural editing like Lisp has. This way the file can never be in an unparsable state.
because in most languages there's a level of abstraction between the syntax of the language and the actual data structure of the program. To use the much maligned term, most languages aren't homoiconic, the internal structure of the program is hidden away from the programmer. Lisps essentially have no syntax, that's why it is trivial to manipulate a lisp program structurally.
I wonder, though, if a "semi-structural" editor with a keypress to "complete what is otherwise an error" would work well. E.g. I write "begin" and so imbalances an expression, and the editor looked at what I typed that changed the parse from successful to an error and puts up options to insert "rescue ... end" or just "end". Maybe coupled with a warning on save if the file does not parse.