how to make clang-format add new line before opening brace of a function?

As the documentation says, invoke clang-format with -style=file, and use a .clang-format file placed in an enclosing directory to customize style options. The format style option specifying brace placement is called BreakBeforeBraces. From the docs,

BreakBeforeBraces (BraceBreakingStyle)

The brace breaking style to
use.

Possible values:

  • BS_Attach (in configuration: Attach) Always attach braces to surrounding context.
  • BS_Linux (in configuration: Linux) Like Attach, but break before braces on function, namespace and class definitions.
  • BS_Stroustrup (in configuration: Stroustrup) Like Attach, but break before function definitions, and ‘else’.
  • BS_Allman (in configuration: Allman) Always break before braces.
  • BS_GNU (in configuration: GNU) Always break before braces and add an extra level of indentation to braces of control statements, not to
    those of class, function or other definitions.

The style that matches your description is BS_Stroustrup. Add the following entry to your .clang-format

BreakBeforeBraces: Stroustrup

In addition to the docs, clangformat.com lists all the options and illustrates many of them with examples.

Leave a Comment