Am I right in thinking that this is more of an issue when working with a bunch of different projects from different teams with different coding standards?
Generally folks who indent with tabs want to be able to change the indenting size without modifying the file, as different people like different indenting amounts. Ken Thompson likes 8 spaces, Rob Pike likes 4 spaces. By using a tab character, then any developer can set their tab size to whatever indenting size they like to view the code with. Even Ken Thompson inventor of Unix prefers this, you can hear it right out of his mouth:
https://www.youtube.com/watch?v=sln-gJaURzk#t=1735I suppose the idea being if they can at least adhere to this minimal principal, their code won't look like crap if your tab stops are different from theirs.
This is correct. And having SE help the developer adhere to this principle would be very helpful!
Usually, by the time the initial indent is rendered into spaces or tabs, the distinction between "this part is indent, and the rest is alignment" is lost.
I don't understand how it is lost. At least for C/C++/Java code the distinction is simple. If a newline occurs without a semicolon at the end of its line, then the next line is a continuation. If a newline occurs after a semicolon, then the next line is not a continuation. Even SE must know about this, otherwise how do you know when to apply the "line continuation indent" or not? How is "line continuation indent" even an option if SE doesn't already know about this? All I'm asking is that when you apply the "line continuation indent", you give an option such that you never use tab characters for this. How can you have "line continuation indent" in Tools->Options->Languages->Application Languages->C/C++->Formatting->Edit->Indent->General if SE doesn't already know the difference?
Even VIM has a plugin called "Smart Tabs" that handles this properly:
https://github.com/vim-scripts/Smart-TabsAt the same time, if I align my code to a different number of spaces after the initial tabs (to align with a parenthesis or something), it would be good if SE didn't use the "line continuation indent" and kept the number of spaces that I manually entered in after the initial indent when doing beautification.