Further improve pgindent's list of file exclusions.
I despair of people keeping the README file's notes in sync with the actual exclusion list, so move the notes into the exclusion file. Adjust the pgindent script to explicitly ignore comments in the file, just in case (though it's hard to believe any would match filenames). Extend the list so that it doesn't process any files we'd not wish it to even in a fully-built-out development directory. (There are still a couple of derived files that it wants to reformat, but fixing the generator scripts for those seems like fit material for a separate patch.) Discussion: https://postgr.es/m/79ed5348-be7a-b647-dd40-742207186a22@2ndquadrant.com
This commit is contained in:
parent
99175141c9
commit
74d4608f50
|
@ -138,33 +138,11 @@ Which files are processed
|
|||
The pgindent run processes (nearly) all PostgreSQL *.c and *.h files,
|
||||
but we currently exclude *.y and *.l files, as well as *.c and *.h files
|
||||
derived from *.y and *.l files. Additional exceptions are listed
|
||||
in exclude_file_patterns:
|
||||
|
||||
src/include/storage/s_lock.h and src/include/port/atomics/ are excluded
|
||||
because they contain assembly code that pgindent tends to mess up.
|
||||
|
||||
src/backend/utils/fmgrtab.c is excluded because it confuses pgindent
|
||||
and it's a derived file anyway.
|
||||
|
||||
src/interfaces/ecpg/test/expected/ is excluded to avoid breaking the ecpg
|
||||
regression tests, since what ecpg generates is not necessarily formatted
|
||||
as pgindent would do it. (Note that we do not exclude ecpg's header files
|
||||
from the run; some of them get copied verbatim into ecpg's output, meaning
|
||||
that the expected files may need to be updated to match.)
|
||||
|
||||
src/include/snowball/libstemmer/ and src/backend/snowball/libstemmer/
|
||||
are excluded because those files are imported from an external project,
|
||||
not maintained locally, and are machine-generated anyway. Likewise for
|
||||
plperl/ppport.h.
|
||||
|
||||
src/include/jit/llvmjit.h is excluded because it contains C++ constructs
|
||||
that confuse pgindent.
|
||||
|
||||
src/backend/utils/probes.h and its alias src/include/utils/probes.h
|
||||
are excluded because that file is machine-generated by code not under
|
||||
our control, and some versions of dtrace build files that confuse
|
||||
pgindent.
|
||||
in exclude_file_patterns; see the notes therein for rationale.
|
||||
|
||||
Note that we do not exclude ecpg's header files from the run. Some of them
|
||||
get copied verbatim into ecpg's output, meaning that ecpg's expected files
|
||||
may need to be updated to match.
|
||||
|
||||
The perltidy run processes all *.pl and *.pm files, plus a few
|
||||
executable Perl scripts that are not named that way. See the "find"
|
||||
|
|
|
@ -1,11 +1,37 @@
|
|||
#list of file patterns to exclude from pgindent runs, see notes in README
|
||||
/storage/s_lock\.h$
|
||||
/port/atomics/
|
||||
/utils/fmgrtab\.c$
|
||||
/ecpg/test/expected/
|
||||
# List of filename patterns to exclude from pgindent runs
|
||||
#
|
||||
# These contain assembly code that pgindent tends to mess up.
|
||||
src/include/storage/s_lock\.h$
|
||||
src/include/port/atomics/
|
||||
#
|
||||
# This contains C++ constructs that confuse pgindent.
|
||||
src/include/jit/llvmjit\.h$
|
||||
#
|
||||
# This confuses pgindent, and it's a derived file anyway.
|
||||
src/backend/utils/fmgrtab\.c$
|
||||
#
|
||||
# kwlist_d files are made by gen_keywordlist.pl. While we could insist that
|
||||
# they match pgindent style, they'd look worse not better, so exclude them.
|
||||
kwlist_d\.h$
|
||||
#
|
||||
# Exclude ecpg test files to avoid breaking the ecpg regression tests
|
||||
# (but include files at the top level of the ecpg/test/ directory).
|
||||
src/interfaces/ecpg/test/.*/
|
||||
#
|
||||
# src/include/snowball/libstemmer/ and src/backend/snowball/libstemmer/
|
||||
# are excluded because those files are imported from an external project,
|
||||
# rather than maintained locally, and they are machine-generated anyway.
|
||||
/snowball/libstemmer/
|
||||
/pl/plperl/ppport\.h$
|
||||
/jit/llvmjit\.h$
|
||||
/utils/probes\.h$
|
||||
#
|
||||
# These files are machine-generated by code not under our control,
|
||||
# so we shouldn't expect them to conform to our style.
|
||||
# (Some versions of dtrace build probes.h files that confuse pgindent, too.)
|
||||
src/backend/utils/probes\.h$
|
||||
src/include/pg_config\.h$
|
||||
src/pl/plperl/ppport\.h$
|
||||
src/pl/plperl/SPI\.c$
|
||||
src/pl/plperl/Util\.c$
|
||||
#
|
||||
# Exclude any temporary installations that may be in the tree.
|
||||
/tmp_check/
|
||||
/tmp_install/
|
||||
|
|
|
@ -159,6 +159,7 @@ sub process_exclude
|
|||
while (my $line = <$eh>)
|
||||
{
|
||||
chomp $line;
|
||||
next if $line =~ m/^#/;
|
||||
my $rgx = qr!$line!;
|
||||
@files = grep { $_ !~ /$rgx/ } @files if $rgx;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue