Added a tool to fix code style [#CLICKHOUSE-2]

This commit is contained in:
Alexey Milovidov 2018-05-07 05:27:11 +03:00
parent a916d2760e
commit 711bc0ed7f
2 changed files with 23 additions and 0 deletions

20
utils/check-style/check-style Executable file
View File

@ -0,0 +1,20 @@
#!/usr/bin/env bash
# For code formatting we have clang-format.
#
# But it's not sane to apply clang-format for whole code base,
# because it sometimes makes worse for properly formatted files.
#
# It's only reasonable to blindly apply clang-format only in cases
# when the code is likely to be out of style.
#
# For this purpose we have a script that will use very primitive heuristics
# (simple regexps) to check if the code is likely to have basic style violations.
# and then to run formatter only for the specified files.
ROOT_PATH=$(git rev-parse --show-toplevel)
find $ROOT_PATH/dbms -name '*.h' -or -name '*.cpp' |
grep -vP 'Compiler|build' |
xargs grep $@ -P '((class|struct|namespace|enum|if|for|while|else|throw|switch).*|\)(\s*const)?(\s*override)?\s*)\{$|\s$|\t|^ {1,3}[^\* ]\S'
# a curly brace not in a new line, but not for the case of C++11 init or agg. initialization | trailing whitespace | number of ws not a multiple of 4, but not in the case of comment continuation

3
utils/check-style/fix-style Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
$(dirname ${BASH_SOURCE[0]})/check-style -l | xargs --no-run-if-empty clang-format -i