On Fri, Jan 31, 2014 at 12:44:22PM -0500, Tom Lane wrote: > Andrew Dunstan <and...@dunslane.net> writes: > > While Bruce is working on pgindent, let me register a small wishlist > > item. It would be quite useful to be able to supply extra typedefs on > > the command line to supplement a typedefs file downloaded from the > > buildfarm or constructed however. A concrete example: in the code I have > > been recently working on, there are typedefs for Jsonb and JsonbValue. > > If I run pgindent as normal on the new code these items are not treated > > properly. What I had to do was take a special copy of the typedefs list > > and add those two items. If we could pass a list of extra typedefs to > > supplement the typedefs file that would be very useful. Then I could do > > something like: > > > pgindent --typedef Jsonb --typedef JsonbValue > > src/backend/utils/adt/jsonfuncs.c > > > without having to mangle a typedefs file. > > Personally, I always just edit the downloaded file to add whatever > typedefs the patch I'm working on adds. I wouldn't use a command > line switch even if there was one, because then I'd have to remember > which typedef names to add each time I run pgindent.
Easily added, so done with the attached, applied patch. You use it like this: pgindent --list-of-typedefs 'abc def' -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + Everyone has their own god. +
diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent new file mode 100755 index 8e45b18..2de7a53 *** a/src/tools/pgindent/pgindent --- b/src/tools/pgindent/pgindent *************** my $indent_opts = *** 22,31 **** # indent-dependant settings my $extra_opts = ""; ! my ($typedefs_file, $code_base, $excludes, $indent, $build); my %options = ( "typedefs=s" => \$typedefs_file, "code-base=s" => \$code_base, "excludes=s" => \$excludes, "indent=s" => \$indent, --- 22,32 ---- # indent-dependant settings my $extra_opts = ""; ! my ($typedefs_file, $typedef_str, $code_base, $excludes, $indent, $build); my %options = ( "typedefs=s" => \$typedefs_file, + "list-of-typedefs=s" => \$typedef_str, "code-base=s" => \$code_base, "excludes=s" => \$excludes, "indent=s" => \$indent, *************** sub load_typedefs *** 125,130 **** --- 126,138 ---- || die "cannot open typedefs file \"$typedefs_file\": $!\n"; my @typedefs = <$typedefs_fh>; close($typedefs_fh); + if (defined($typedef_str)) + { + foreach my $typedef (split(m/[, \t\n]+/, $typedef_str)) + { + push(@typedefs, $typedef . "\n"); + } + } # remove certain entries @typedefs =
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers