palantir-java-format
palantir-java-format copied to clipboard
Non-deterministic indentation when 2nd, 4th, etc arguments of methods are long
What happened?
Both of the following indentation levels are allowed, and depending on what the state of the code was before running the formatter, it is non-deterministic which one is output.
Object object = foo(
foo,
veryVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVeryyyyyyyyyyyyyVeryVeryLongVariableName,
foo,
veryVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVeryyyyyyyyyyyyyVeryVeryLongVariableName);
Object object = foo(
foo,
veryVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVeryyyyyyyyyyyyyVeryVeryLongVariableName,
foo,
veryVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVerVeryVeryyyyyyyyyyyyyVeryVeryLongVariableName);
What did you want to happen?
We should be deterministic/consistent about which indentation level is output by the formatter. I think the latter makes the most sense. In our case, we discovered this while using Map.of(), where the former indentation level does make some sense, but I don't think it makes sense to allow that just for Map.of().