mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-21 03:13:05 +08:00
Create pgjindent for java.
This commit is contained in:
parent
17c03b30b0
commit
3fb3678409
@ -30,3 +30,9 @@ We get the list of typedef's included in pgindent by running:
|
||||
Make sure to do the pgsql/bin directory, and the src/interfaces/odbc
|
||||
directory. Merge the output of these and remove duplicates.
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
For java, we use astyle, http://astyle.sourceforge.net/, with the
|
||||
following options:
|
||||
|
||||
find . -name '*.java' -type f -print | xargs -n100 pgjindent
|
||||
|
@ -24,7 +24,7 @@ fi
|
||||
|
||||
for FILE
|
||||
do
|
||||
cat $FILE |
|
||||
cat "$FILE" |
|
||||
# convert // comments to /* */
|
||||
sed 's;^\([ ]*\)//\(.*\)$;\1/* \2 */;g' |
|
||||
# mark some comments for special treatment later
|
||||
@ -1319,7 +1319,7 @@ int pgindent_func_no_var_fix;\
|
||||
# add space after comments that start on tab stops
|
||||
sed 's,;\(/\*.*\*/\)$,; \1,' |
|
||||
# work around #else indenting next line if #ifdef defines variables at top
|
||||
# work around case misindenting function has no variables defined
|
||||
# work around misindenting of function with no variables defined
|
||||
awk '
|
||||
{
|
||||
if ($0 ~ "^[ ]*int[ ]*pgindent_func_no_var_fix;")
|
||||
@ -1329,6 +1329,7 @@ int pgindent_func_no_var_fix;\
|
||||
}
|
||||
else print $0;
|
||||
}' |
|
||||
# remove tabs and retab with four spaces
|
||||
detab -t8 -qc |
|
||||
entab -t4 -qc |
|
||||
# move trailing * in function return type
|
||||
@ -1459,7 +1460,7 @@ int pgindent_func_no_var_fix;\
|
||||
}
|
||||
else print $0;
|
||||
}' |
|
||||
cat >/tmp/$$ && cat /tmp/$$ >$FILE
|
||||
cat >/tmp/$$ && cat /tmp/$$ >"$FILE"
|
||||
done
|
||||
|
||||
# The 'for' loop makes these backup files useless so delete them
|
||||
|
27
src/tools/pgindent/pgjindent
Executable file
27
src/tools/pgindent/pgjindent
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
trap "rm -f /tmp/$$ /tmp/$$a" 0 1 2 3 15
|
||||
entab </dev/null >/dev/null
|
||||
if [ "$?" -ne 0 ]
|
||||
then echo "Go to the src/tools/entab directory and do a 'make' and 'make install'." >&2
|
||||
echo "This will put the 'entab' command in your path." >&2
|
||||
echo "Then run $0 again."
|
||||
exit 1
|
||||
fi
|
||||
astyle --version </dev/null >/dev/null 2>&1
|
||||
if [ "$?" -eq 0 ]
|
||||
then echo "You do not appear to have 'astyle' installed on your system." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for FILE
|
||||
do
|
||||
astyle --style=java -b -p -j < "$FILE" >/tmp/$$ 2>/tmp/$$a
|
||||
if [ "$?" -ne 0 -o -s /tmp/$$a ]
|
||||
then echo "$FILE"
|
||||
cat /tmp/$$a
|
||||
fi
|
||||
cat /tmp/$$ |
|
||||
entab -t4 -qc |
|
||||
cat >/tmp/$$a && cat /tmp/$$a >"$FILE"
|
||||
done
|
Loading…
Reference in New Issue
Block a user