if (condition...
&& condition...
&& condition...
) { if ((
condition1
) && (
condition2
) && (
...
)) {At the same time I get your point and also the argument about Git diffs (which also should be readable). So maybe the ideal situation would be a separation of code and its formatting, so that we have more options than tabs and also no need for crutches like tabs. Like a better, more flexible code formatter that lets you display and edit code in the editor using one style but then saves the file in a standard format that's consistent across the whole project.
func(arg1, arg2, arg3)
the first example splits it across multiple lines in a way which maximally preserves the other apects of the notation.Once you’re splitting it across lines I don’t think that is a desirable attribute. Better to use a format that suits multiple lines than attempt to match as closely as possible to a format intended for one line. Like those “flying cars” that try to look like the “canonical” car.
From my perspective this is a UI problem (though not a serious one).
Things like
usually don't align well because func( has a different width than the five spaces in the lines below. However1) my text editor (emacs) aligns those lines for me (probably any programmer's editor does) so at least I don't have to do precision work
2) I ended up writing code like
especially with named arguments (arg=value). That aligns even with proportional fonts and all arguments immediately stand out.If the arguments are few (two or three) and there are no named arguments I don't break them on multiple lines.
The result is that no coworker ever complained about my code.
Languages with a formatter (Elixir) solve the problem once and for all and align well with both kinds of fonts.