The nearest concession I can make (I am a spaces person) is tabs at the beginning of the line to indent, and spaces to align after that.
That isn't a concesssion; it's the only valid way.
I'm very much a tab person. Tabs are for indenting. They're not for aligning. Indenting is a logical concept, aligning is a visual one. It doesn't matter what size your tabs are set to; N tabs at the start of a line are always the same size as N tabs at the start of the line, always smaller than N+1 tabs, and always larger than N-1 tabs. That's perfect for indenting.
However, a tab is not the same size as any number of spaces, nor are tabs following something other than BOL or tab the same size as any other tabs. That's alignment; tabs aren't for that.
(____ is a single tab. So is ----, for clarity.)
____if(x
____ && y)
____{
____----print "some foo"
____---- . "some bar";
____}
____struct foo
____{
____----int xyz;
____----unsigned char *abc;
____}
IMO, it's pretty obvious what's indentation and what's alignment. Using tabs for the latter, outside of very special cases, is a mortal sin.
|