On 05/27/2015 11:53 AM, Bruce Momjian wrote:
> On Wed, May 27, 2015 at 02:31:07AM +0200, Andres Freund wrote:
>> But really, the typedef list is the minor part what annoys me about
>> pgindent. That it completely butchers so many constructs (e.g. function
>> pointer typedefs, inline asm as extreme examples) is much worse. It's
>> also neigh on impossible to predict/keep the indentation pgindent will
>> use in many cases. Having to try to write code in a way that doesn't
>> break the re-indentation tool, even if it'd otherwise be fine, is just
>> absurd.
> What does "break" mean here? Considering we are indenting 1.4M lines of
> code, skipping ASM files seems pretty minor.
>
That's not a bad bit of perspective.
One thing that might ease some pain would a facility to tell pgindent to
leave a block of code alone. That wouldn't be terribly hard to create.
The perl code could save those blocks out in the pre_indent function,
which would return them along with the source. they would then be passed
to the post_indent function which would restore them. All we would need
would be a pair or markers to delimit such blocks. Something like:
/* PGINDENT_PRESERVE */
and
/* PGINDENT_END_PRESERVE */
should do the trick.
I imagine we could probably do this in 50 lines of perl or less.
Worth the trouble?
cheers
andrew