It's a matter of preference. For complicated function calls where you want to document each parameter, or where the variables are rather long and there are many of them, this can be good.
For example:
do_complex_op(
0, //Starting state, always 0, ask Joe why
X, //X-coord of thingy
y, //Y-coord of thingy
73, //in this case, we don't want to use Z but want constant
dlogMessageTitle, //message for dialogue title
dlogMessageText, //message for dialogue contents, don't care about this.
SomethingIP, //IP of something-or-other server, can be NULL, won't crash.
someObject.childObject.getValue(key1).HVAL, //very long path to HVAL
someObject.childObject.getValue(key1).LVAL, //very long path to LVAL
this.parentWindow.owner.mainTextBox.text.value.trim, //get the trimmed text, untrimmed text causes weird output
pvrMainSettingForLongBlahs.getObjectByPath(somePath),
pvrMainSettingForLongBlahs.K_TCA_UPPER_LIMIT,
pvrMainSettingForLongBlahs.K_ENDPOINT_COMPLIANCE_LEVEL,
);
With languages that allow named parameters this is more common if you use the parameter names (example is in PL/SQL):
PKG_SOME_TEST_CODE.FN_DO_SOMETHING( in_text => 'test text',
in_id => v_id,
in_ref_id => v_ref_id,
out_array_for_storage => v_bArray);
But I agree with you that if the function call is simple and not too many parameters, this could get annoying, such as:
setColour (
r,
g,
b
);
I find much easier to read as
setColour(r,g,b);
For @ammoQ:
rc=a(b,c(d,e(f)))
rc=a(
b,
c(
d,
e(
f
)
)
)