Repository: mesos Updated Branches: refs/heads/master 39acb0a6b -> 09b31633a
Upgraded to clang-format-3.8. Review: https://reviews.apache.org/r/44758/ Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/09b31633 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/09b31633 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/09b31633 Branch: refs/heads/master Commit: 09b31633a3edb3896e62cac2a006720f33c4b90d Parents: 39acb0a Author: Yong Tang <yong.tang.git...@outlook.com> Authored: Thu Mar 24 16:29:54 2016 -0400 Committer: Michael Park <mp...@apache.org> Committed: Thu Mar 24 16:30:07 2016 -0400 ---------------------------------------------------------------------- docs/clang-format.md | 41 +++++------- support/clang-format | 163 ++++++++++++++++++++-------------------------- 2 files changed, 87 insertions(+), 117 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/09b31633/docs/clang-format.md ---------------------------------------------------------------------- diff --git a/docs/clang-format.md b/docs/clang-format.md index 7f1c1df..4289813 100644 --- a/docs/clang-format.md +++ b/docs/clang-format.md @@ -5,34 +5,31 @@ layout: documentation # ClangFormat -[ClangFormat](http://llvm.org/releases/3.5.1/tools/clang/docs/ClangFormat.html) is an automatic source code formatting tool which helps us focus on the code rather than the formatting. +[ClangFormat](http://llvm.org/releases/3.8.0/tools/clang/docs/ClangFormat.html) is an automatic source code formatting tool which helps us focus on the code rather than the formatting. > The provided configurations try to honor the [Mesos C++ Style > Guide](c++-style-guide.md) as much as possible, but there are some > limitations which require manual attention. Even with these limitations > however, ClangFormat will be extremely useful for your workflow! ## Setup -### Install `clang-format-3.5` +### Install `clang-format-3.8` #### Ubuntu 14.04 + # Add llvm repository + sudo apt-add-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty main" + # Ensure apt-get is up to date. sudo apt-get update - # Install clang-format-3.5 - sudo apt-get install clang-format-3.5 - - -#### OS X Yosemite + # Install clang-format-3.8 + sudo apt-get install clang-format-3.8 - # Install clang-3.5. The binaries are suffixed with '-3.5', e.g. 'clang++-3.5'. - $ brew install llvm35 --with-clang +#### OS X El Capitan - # Download and install the clang-format scripts. - $ wget http://llvm.org/releases/3.5.1/cfe-3.5.1.src.tar.xz - $ tar -xzf cfe-3.5.1.src.tar.xz - $ cp cfe-3.5.1.src/tools/clang-format/clang-format* `brew --cellar`/llvm35/3.5.1/share/clang-3.5 + # Install clang-format (3.8). + $ brew install clang-format ### Formatting Configuration @@ -42,8 +39,6 @@ By default, ClangFormat uses the configuration defined in a `.clang-format` or The `bootstrap` script creates a `.clang-format` symlink at the top-level directory which points to `support/clang-format` for ClangFormat to find. -> NOTE: If you're using `clang-format-3.6`, you'll need to add a new option -`BinPackArguments: false` to the `.clang-format` file! ### Editor Integration @@ -53,13 +48,13 @@ Add the following to your `.vimrc`: Ubuntu: - map <C-K> :pyf /usr/share/vim/addons/syntax/clang-format-3.5.py<cr> - imap <C-K> <c-o>:pyf /usr/share/vim/addons/syntax/clang-format-3.5.py<cr> + map <C-K> :pyf /usr/share/vim/addons/syntax/clang-format-3.8.py<cr> + imap <C-K> <c-o>:pyf /usr/share/vim/addons/syntax/clang-format-3.8.py<cr> OS X: - map <C-K> :pyf /usr/local/share/clang-3.5/clang-format.py<cr> - imap <C-K> <c-o>:pyf /usr/local/share/clang-3.5/clang-format.py<cr> + map <C-K> :pyf /usr/local/share/clang/clang-format.py<cr> + imap <C-K> <c-o>:pyf /usr/local/share/clang/clang-format.py<cr> The first line enables clang-format for `NORMAL` and `VISUAL` mode, the second line adds support for `INSERT` mode. Change `C-K` to another binding if you need clang-format on a different key (`C-K` stands for `Ctrl+k`). @@ -67,7 +62,7 @@ With this integration you can press the bound key and clang-format will format t It operates on the current, potentially unsaved buffer and does not create or save any files. To revert a formatting, just undo. -> Source: http://llvm.org/releases/3.5.1/tools/clang/docs/ClangFormat.html +> Source: http://llvm.org/releases/3.8.0/tools/clang/docs/ClangFormat.html #### Emacs @@ -75,17 +70,17 @@ Add the following to your `.emacs`: Ubuntu: - (load "/usr/share/emacs/site-lisp/clang-format-3.5/clang-format.el") + (load "/usr/share/emacs/site-lisp/clang-format-3.8/clang-format.el") (global-set-key [C-M-tab] 'clang-format-region) OS X: - (load "/usr/local/share/clang-3.5/clang-format.el") + (load "/usr/local/share/clang/clang-format.el") (global-set-key [C-M-tab] 'clang-format-region) This binds the function `clang-format-region` to `C-M-tab`, which then formats the current line or selected region. -> Source: http://llvm.org/releases/3.5.1/tools/clang/docs/ClangFormat.html +> Source: http://llvm.org/releases/3.8.0/tools/clang/docs/ClangFormat.html ## Known Limitations http://git-wip-us.apache.org/repos/asf/mesos/blob/09b31633/support/clang-format ---------------------------------------------------------------------- diff --git a/support/clang-format b/support/clang-format index 499d0e7..bb58702 100644 --- a/support/clang-format +++ b/support/clang-format @@ -1,105 +1,80 @@ --- +# Note: Generated from clang-format 3.8. BasedOnStyle: Google - -# Good: -# -# class Foo -# { -# public: -# -# Foo() = default; -# -# }; -# -# Bad: -# -# class Foo -# { -# public: -# -# Foo() = default; -# -# }; -# +Language: Cpp AccessModifierOffset: -2 - -# Good: -# -# clang = Clang(); // Comment 1 -# format = Format(); // Comment 2 -# -# Bad: -# clang = Clang(); // Comment 1 -# format = Format(); // Comment 2 -# +AlignAfterOpenBracket: AlwaysBreak +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlinesLeft: true +AlignOperands: true AlignTrailingComments: false - -# Good: -# -# void F(int first, -# int second, -# int third, -# int fourth, -# int fifth, -# int sixth, -# int seventh, -# int eighth) {} -# -# Bad: -# -# void F(int first, int second, int third, int fourth, int fifth, int sixth, -# int seventh, int eighth) {} -# +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: true +BinPackArguments: false BinPackParameters: false - -# Like 'Attach', but break before braces on function, namespaces, class, struct -# and union definitions. -# -BreakBeforeBraces: Linux - -# Good: -# -# class Foo -# { -# public: -# -# Foo() -# : first(1), second(2) {} -# -# }; -# -# Bad: -# -# class Foo -# { -# public: -# -# Foo() -# : first(1), second(2) {} -# -# }; -# +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Mozilla +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +ColumnLimit: 80 +CommentPragmas: '^ IWYU pragma:' +ConstructorInitializerAllOnOneLineOrOnePerLine: true ConstructorInitializerIndentWidth: 2 - -# Continuation indents such as assignment statements are indented by 2 spaces. ContinuationIndentWidth: 2 - -# Don't try to guess the pointer alignment +Cpp11BracedListStyle: true DerivePointerAlignment: false - -# List of foreach macros due to lack of range-based for loops. -ForEachMacros: [ foreach, foreachkey, foreachvalue, foreachpair ] - -# Maximum number of empty lines to keep. +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +ForEachMacros: [ foreach, foreachkey, foreachvalue, foreachpair ] +IncludeCategories: + - Regex: '^<.*\.h>' + Priority: 1 + - Regex: '^<.*\.hpp>' + Priority: 3 + - Regex: '^<.*>' + Priority: 2 + - Regex: '.*' + Priority: 4 +IndentCaseLabels: true +IndentWidth: 2 +IndentWrappedFunctionNames: false +KeepEmptyLinesAtTheStartOfBlocks: false +MacroBlockBegin: '' +MacroBlockEnd: '' MaxEmptyLinesToKeep: 2 - -# Good: -# -# x = 42; // Comment -# -# Bad: -# -# x = 42; // Comment -# +NamespaceIndentation: None +ObjCBlockIndentWidth: 2 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: false +PenaltyBreakBeforeFirstCallParameter: 1 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Left +ReflowComments: true +SortIncludes: true +SpaceAfterCStyleCast: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Auto +TabWidth: 8 +UseTab: Never ...