On 2023-04-26 We 09:27, Tom Lane wrote:
Peter Eisentraut<peter.eisentr...@enterprisedb.com> writes:
On 24.04.23 16:14, Tom Lane wrote:
I certainly don't like its current behavior where adding/changing one
line can have side-effects on nearby lines. But we have a proposal
to clean that up, and I'm cautiously optimistic that it'll be better
in future. Did you have other specific concerns?
I think the worst is how it handles multi-line data structures like
$newnode->command_ok(
[
'psql', '-X',
'-v', 'ON_ERROR_STOP=1',
'-c', $upcmds,
'-d', $oldnode->connstr($updb),
],
"ran version adaptation commands for database $updb");
Yeah, I agree, there is no case where that doesn't suck. I don't
mind it imposing specific placements of brackets and so on ---
that's very analogous to what pgindent will do. But it likes to
re-flow comma-separated lists, and generally manages to make a
complete logical hash of them when it does, as in your other
example:
$node->command_fails_like(
[
'pg_basebackup', '-D',
"$tempdir/backup", '--compress',
$cft->[0]
],
qr/$cfail/,
'client ' . $cft->[2]);
Can we fix it to preserve the programmer's choices of line breaks
in comma-separated lists?
I doubt there's something like that. You can freeze arbitrary blocks of
code like this (from the manual)
#<<< format skipping: do not let perltidy change my nice formatting
my @list = (1,
1, 1,
1, 2, 1,
1, 3, 3, 1,
1, 4, 6, 4, 1,);
#>>>
But that gets old and ugly pretty quickly.
There is a --freeze-newlines option, but it's global. I don't think we
want that.
cheers
andrew
--
Andrew Dunstan
EDB:https://www.enterprisedb.com