Also I haven't tested it but I'm pretty sure the solution to tabs vs. spaces is:
- newline+tab(s) for indenting
- space(s)+tab for (contextual) alignment
Line-initial tabs give fixed, foldable offsets -- adjacent lines with N initial tabs are lined up to start flush with each other. An adjacent line with N+1 initial tabs is given a user-configued indent.
A tab following a space is marked as a tabstop and aligned to matching* tabstops in adjacent rows.
I'm not sure whether that is enough as-is -- and minimal spacing can be done by adding more spaces, and tabstops can be skipped by e.g. `space+tab+tab` -- or whether some algorithm matching by context, what characters proceed/follow the space+tab, as matched as possible (effectively translating to e.g. "line up this `", <tab>"` with the next `", <tab>"` in the previous line".)