> On Oct 16, 2014, at 5:40 PM, Robert Dailey <rcdailey.li...@gmail.com> wrote: > > I just started taking a look at Clang-Format on Windows using clang > 3.6 and I have a few questions concerning formatting rules. > > 1. Is there a way to force constructor member initiailizer lists to > always use 1 line per member? Example: > > Foo::Foo() > : m_member1(1) > , m_member2(2) > {}
BreakConstructorInitializersBeforeComma: true should do this. > > 2. The coding standard we use on the project I am involved in requires > that class indentation be relative to the indentation of the access > specifiers. For example: > > class Foo > { > public: > Foo(); > }; > > Basically if an access specifier is provided, it follows the normal > indent width (4 in this case). Everything *after* the access specifier > is indented relative to the indentation of the specifier before it (so > actually it would be indented twice). If there are no access > specifiers in a class, indentation goes back to the normal 1 indent. I do not think this is possible. Members get one level of indentation relative to the class scope. > > 3. When the parameters of a function exceed the length of the line, > I'd like to see a way to make the parameters get their own dedicated > lines indented 1 level from the start of the function header. For > example: > > // Priority 1: All fits on one line > void Foo::SomeFunction(int longparam1, int longparam2, int longparam3); > > // Priority 2: No room, try 1 carriage return: > void Foo::SomeFunction( > int longparam1, int longparam2, int longparam3); > > // Priority 3: No room for priority 2, so each gets its own line > void Foo::SomeFunction( > int longparam1, > int longparam2, > int longparam3); You might be able to get close with something like BinPackParameters: false and some value for PenaltyBreakBeforeFirstCallParameter. When parameters are formatted to one-per-line I think the first parameter will be on the same line as the rest of the declaration and the rest of the parameters are aligned with the first. > > 4. Is there a way to make nested namespaces follow this formatting style? > > namespace Outter { > namespace Inner { > > class Foo; > > }} // namespace Outter::Inner > > Notice the closing braces are collectively placed on the same line. > Also none of the namespaces have indentation. You can do NamespaceIndentationKind: None, but I don't think you can get the closing braces on the same line. > > Thanks in advance! > _______________________________________________ > cfe-users mailing list > cfe-users@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users _______________________________________________ cfe-users mailing list cfe-users@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users