Subject: Re: [PATCH] .clang-format: introduce the use of clang-format

From: René Scharfe <[email-masked]>
Date: Sun, 18 Jan 2015 12:31:18 +0100

Am 17.01.2015 um 22:30 schrieb Ramkumar Ramachandra:
> Instead of manually eyeballing style in reviews, just ask all
> contributors to run their patches through [git-]clang-format.
>
> Signed-off-by: Ramkumar Ramachandra <[email-masked]>
> ---
>   The idea is to introduce the community to this new toy I found called
>   clang-format. Whether or not it's actually going to be used doesn't
>   bother me too much.
>
>   I'm not 100% sure of the style, but I'll leave you to tweak that
>   using http://clang.llvm.org/docs/ClangFormatStyleOptions.html
>
>   The current code isn't terribly conformant, but I suppose that'll
>   change with time.
>
>   .clang-format | 7 +++++++
>   1 file changed, 7 insertions(+)
>   create mode 100644 .clang-format
>
> diff --git a/.clang-format b/.clang-format
> new file mode 100644
> index 0000000..63a53e0
> --- /dev/null
> +++ b/.clang-format
> @@ -0,0 +1,7 @@
> +BasedOnStyle: LLVM
> +IndentWidth: 8
> +UseTab: Always
> +BreakBeforeBraces: Linux
> +AllowShortBlocksOnASingleLine: false
> +AllowShortIfStatementsOnASingleLine: false
> +IndentCaseLabels: false
> \ No newline at end of file

Why no newline on the last line?

These one would be needed as well to match our style, I think:

	AllowShortFunctionsOnASingleLine: None
	ContinuationIndentWidth: 8

And probably this one:

	Cpp11BracedListStyle: false

However, even then struct declarations that are combined with variable 
declaration and initialization get mangled:

	struct a {
		int n;
		const char *s;
	} arr[] = {
		{ 1, "one" },
		{ 2, "two" }
	};

becomes:

	struct a
	{
		int n;
		const char *s;
	} arr[] = { { 1, "one" }, { 2, "two" } };

It gets formatted better if arr is declared separately.

And this one helps get rid of the added line break between struct a and 
the following brace:

	BreakBeforeBraces: Stroustrup