It'll be an interesting experiment to see if there are any problems with that approach. If not, maybe we can all finally move on.
1) `go fmt` fixes up whitespace, and is fast enough to run on every file-save. Although this sometimes screws up my undo stack.
2) Spaces are still used for alignment, but...
3) Only tabs are used before the content of a line, and...
4) Only spaces are used throughout the content of a line.
The primary reason that I prefer spaces is that it means that I don't have to constantly look at hidden characters while editing. However, go fix's enforcement of the begin/intra-line separation of tabs and spaces alleviates that problem: If it's touching the left margin, it's a tab, otherwise, it's a space.
fred /* Fred */
fred(fred) { /* Fred */
fred /* Fred */
} fred {
fred /* Fred */
}
(The reader must make up their own mind about whether this is important or not.)