It seems that the Align Call Arguments options have no effect on code formatting. Instead, their alignment is controlled by the setting of Align Expression.
This leads to a very serious formatting problem for me:
Supppose I have the method call spanning multiple lines because of a bunch of long parameters. I would it expect to be formatted like this
(continous line indent multiplier = 2, indent size = 2)
MyType myType = someObject.GetMyType.MyGetMethod (
parameter1,
parameter3,
parameter3);
But because the method parameters are (or seem to be) formatted by to the Align Expression setting instead of Align Call Arguments, I get the following result.
MyType myType = someObject.GetMyType.MyGetMethod (
parameter1,
parameter3,
parameter3);
And if I switch off Align Expression, the method call arguments are aligned properly (see example 1), but my multiline string, numeric or boolean expressions go crazy:
string text = "part 1"
+ "part 2"
+ "part 3"
+ "part 4";
On a side note: May I suggest to alter the sample for Align Call Arguments:
Right now it shows
foo (
firstParameter,
seconParameter);
and since the method name starts on the first column, you cannot tell where the alignment is relative to.
I would suggest:
myVeryVeryVeryVeryVeryLongVariableName.Foo (
firstParameter,
secondParameter);
(or something like this).
Example 1:
MyType myType = someObject.GetMyType.MyGetMethod (
....parameter1,
....parameter3,
....parameter3);
Example 2:
MyType myType = someObject.GetMyType.MyGetMethod (
................................................................................parameter1,
................................................................................parameter3,
................................................................................parameter3);
Example 3:
string text = "part 1"
....+ "part 2"
........+ "part 3"
............+ "part 4";
Example 4:
foo (
....firstParameter,
....seconParameter);
Example 5:
myVeryVeryVeryVeryVeryLongVariableName.Foo (
....firstParameter,
....secondParameter);