[clang-format] New format param ObjCBinPackProtocolList
Summary: This is an alternative approach to D42014 after some investigation by stephanemoore@ and myself. Previously, the format parameter `BinPackParameters` controlled both C function parameter list bin-packing and Objective-C protocol conformance list bin-packing. We found in the Google style, some teams were changing `BinPackParameters` from its default (`true`) to `false` so they could lay out Objective-C protocol conformance list items one-per-line instead of bin-packing them into as few lines as possible. To allow teams to use one-per-line Objective-C protocol lists without changing bin-packing for other areas like C function parameter lists, this diff introduces a new LibFormat parameter `ObjCBinPackProtocolList` to control the behavior just for ObjC protocol conformance lists. The new parameter is an enum which defaults to `Auto` to keep the previous behavior (delegating to `BinPackParameters`). Depends On D42649 Test Plan: New tests added. make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests Reviewers: jolesiak, stephanemoore, djasper Reviewed By: stephanemoore Subscribers: Wizard, hokein, cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D42650 llvm-svn: 324131
Showing
- clang/include/clang/Format/Format.h 44 additions, 0 deletionsclang/include/clang/Format/Format.h
- clang/lib/Format/ContinuationIndenter.cpp 12 additions, 1 deletionclang/lib/Format/ContinuationIndenter.cpp
- clang/lib/Format/Format.cpp 10 additions, 0 deletionsclang/lib/Format/Format.cpp
- clang/unittests/Format/FormatTestObjC.cpp 15 additions, 2 deletionsclang/unittests/Format/FormatTestObjC.cpp
Loading
Please register or sign in to comment