> 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

Reply via email to