Autoindent and tabs. I have learnt to keep it simple and mechanical. "Smart" editor mode did not work for me; the logic goes:
- Text alignment is separate from indentation. E.g. a char table[] definition, where you put spaces before the small numbers to make the columns align. The editor does not know where indentation ends and whitespace starts.
- The "smart" editor makes mistakes. Having to guess what happens if I hit that Backspace key amounts to an unacceptable cognitive load / annoyance.
- My fingers find Tab and Backspace easily, I'll never use any other keys to change indentation.
- Manual indent changes are effortless and "automatic". Somehow being assertive and in control goes well with the flow of thought.
- Consequently, I encode indent level as tabs in the source files.
Of course, using tabs is not mandatory, but to sum this up:
People who do not know of indentation character are bound to reinvent it.
ps. Oh by the way, should you want to increment the troll-level, the next question to ask is if one uses braces for scoping.
pps. Curiously, Unicode has a number of space characters, but none wider that 1 em...