clang-format.bash: update to clang-format-6.0

Update `.clang-format` with configuration to make the 6.0 format as
close as possible to what 3.8 produced before.  Then revise the style:

* Indent preprocessor directives (a feature new since 3.8)
* Add a newline and indentation before inheritance `:` and `,`

Rename the Git attribute identifying the format to include the
clang-format version number: `format.clang-format-6.0`.  This will aid
external infrastructure in knowing what version of the tool to run.
This commit is contained in:
Brad King 2018-05-31 13:40:34 -04:00
parent eb7ec19c1c
commit 523c443d13
13 changed files with 33 additions and 20 deletions

View File

@ -1,8 +1,21 @@
---
# This configuration requires clang-format version 3.8 exactly.
# This configuration requires clang-format version 6.0 exactly.
BasedOnStyle: Mozilla
AlignOperands: false
AlwaysBreakAfterReturnType: None
AllowShortFunctionsOnASingleLine: InlineOnly
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterClass: true
AfterEnum: true
AfterFunction: true
AfterStruct: true
AfterUnion: true
BreakBeforeBraces: Custom
ColumnLimit: 79
IndentPPDirectives: AfterHash
SortUsingDeclarations: false
SpaceAfterTemplateKeyword: true
...

4
.gitattributes vendored
View File

@ -2,11 +2,11 @@
.hooks* export-ignore
# Custom attribute to mark sources as using our C code style.
[attr]our-c-style whitespace=tab-in-indent format.clang-format
[attr]our-c-style whitespace=tab-in-indent format.clang-format-6.0
# Custom attribute to mark sources as generated.
# Do not perform whitespace checks. Do not format.
[attr]generated whitespace=-tab-in-indent,-indent-with-non-tab -format.clang-format
[attr]generated whitespace=-tab-in-indent,-indent-with-non-tab -format.clang-format-6.0
bootstrap eol=lf
configure eol=lf

View File

@ -9,7 +9,7 @@ See documentation on `CMake Development`_ for more information.
C++ Code Style
==============
We use `clang-format`_ version **3.8** to define our style for C++ code in
We use `clang-format`_ version **6.0** to define our style for C++ code in
the CMake source tree. See the `.clang-format`_ configuration file for our
style settings. Use the `Utilities/Scripts/clang-format.bash`_ script to
format source code. It automatically runs ``clang-format`` on the set of

View File

@ -1,2 +1,2 @@
# Do not format third-party sources.
/kwsys/** -format.clang-format
/kwsys/** -format.clang-format-6.0

View File

@ -1 +1 @@
* -format.clang-format
* -format.clang-format-6.0

View File

@ -1 +1 @@
UsefulManagedCppClass.* -format.clang-format
UsefulManagedCppClass.* -format.clang-format-6.0

View File

@ -1,2 +1,2 @@
# Do not format a source containing C++11 '>>' syntax as C++98.
cxx_right_angle_brackets.cpp -format.clang-format
cxx_right_angle_brackets.cpp -format.clang-format-6.0

View File

@ -1,2 +1,2 @@
# Do not format a source where we want a long line preserved.
pic_test.h -format.clang-format
pic_test.h -format.clang-format-6.0

View File

@ -1,2 +1,2 @@
# Do not format a source encoded in UTF-16.
test_UTF-16LE.h -format.clang-format
test_UTF-16LE.h -format.clang-format-6.0

View File

@ -1,2 +1,2 @@
# Exclude reference content from formatting.
* -format.clang-format
* -format.clang-format-6.0

View File

@ -1 +1 @@
Direct3DApp1.cpp -format.clang-format
Direct3DApp1.cpp -format.clang-format-6.0

View File

@ -3,5 +3,5 @@
SetupForDevelopment.sh export-ignore
# Do not format third-party sources.
/KWIML/** -format.clang-format
/cm*/** -format.clang-format
/KWIML/** -format.clang-format-6.0
/cm*/** -format.clang-format-6.0

View File

@ -78,7 +78,7 @@ test "$#" = 0 || die "$usage"
# Find a default tool.
tools='
clang-format-3.8
clang-format-6.0
clang-format
'
if test "x$clang_format" = "x"; then
@ -96,8 +96,8 @@ if ! type -p "$clang_format" >/dev/null; then
exit 1
fi
if ! "$clang_format" --version | grep 'clang-format version 3\.8' >/dev/null 2>/dev/null; then
echo "clang-format version 3.8 is required (exactly)"
if ! "$clang_format" --version | grep 'clang-format version 6\.0' >/dev/null 2>/dev/null; then
echo "clang-format version 6.0 is required (exactly)"
exit 1
fi
@ -115,8 +115,8 @@ esac
$git_ls |
# Select sources with our attribute.
git check-attr --stdin format.clang-format |
grep -e ': format\.clang-format: set$' |
git check-attr --stdin format.clang-format-6.0 |
grep -e ': format\.clang-format-6\.0: set$' |
sed -n 's/:[^:]*:[^:]*$//p' |
# Update sources in-place.