On 04.03.26 10:18, Jelte Fennema-Nio wrote:
On Wed Dec 31, 2025 at 4:48 PM CET, Andrew Dunstan wrote:
I'd kinda like to unify these universes, though. We could import the
pgperltidy logic into pgindent but disable it unless some flag were
given and the correct version of perltidy were present.
Attached is an initial patchset that does that, as well as improving
pgindent in various other ways. This has removed the make/meson
integration and instead made pgindent smarter at finding pg_bsd_indent
and perltidy. I believe that with all of these QoL improvements we could
enable perltidy in pgindent by default (after doing a full indent run).
I want to call pretty much all of this code was written by Claude Code
(i.e. an AI). I plan to do another review pass over this code soonish.
Especially the later commits, which I haven't checked in detail yet.
But for now I at least wanted to share the direction of what I've been
working on, because I saw that Peter marked himself as reviewer on the
commitfest app and I don't think it makes sense for him to look at the
previous patchset.
Apparently, this is still work in progress, but here are some comments
from me.
I'm very interested in the patch "pgindent: Clean up temp files on
SIGINT", because this is an annoying problem. But I didn't find any
documentation about why this is the correct solution. I didn't find
anything on the File::Temp man page, for example. Do you have more details?
The patch "pgindent: Use git ls-files to discover files" is also
interested and pretty straightforward. I guess we don't really care
about being able to run this in non-git trees?
The other stuff I don't think I'm really on board with. In particular,
I don't like integrating pgperltidy into pgindent. These things are in
practice run at different times and the underlying tools update
differently and require different management, so integrating them all
might lead to various annoyances.
I kind of liked the original idea of a "make format", and then you could
have subtargets like "make format-c" and "make format-perl" if you don't
have all the tools.
The parallel pgindent is pretty nice, but I wonder how "use POSIX" works
on Windows?
(But in practice I mostly use pgindent --commit=@, which is still much
faster.)