EditorConfig properties for C++: Line breaks and Wrapping
General
Line feed at end of file
Property names:
insert_final_newline
, [resharper_]cpp_insert_final_newline
Possible values:
true | false
Place on new line
Place 'else' on new line after compound statement
Property names:
[resharper_]cpp_new_line_before_else
, [resharper_]new_line_before_else
Possible values:
true | false
Examples:
true |
---|
if (true)
{
foo();
}
else
{
foo();
} |
false |
---|
if (true)
{
foo();
}
else
{
foo();
} |
Place 'while' on new line after compound statement
Property names:
[resharper_]cpp_new_line_before_while
, [resharper_]new_line_before_while
Possible values:
true | false
Examples:
true |
---|
do
{
foo();
}
while (true); |
false |
---|
do
{
foo();
}
while (true); |
Place 'catch' on new line after compound statement
Property names:
[resharper_]cpp_new_line_before_catch
, [resharper_]new_line_before_catch
Possible values:
true | false
Examples:
true |
---|
try
{
foo();
}
catch (...)
{
foo();
} |
false |
---|
try
{
foo();
}
catch (...)
{
foo();
} |
Break line in single embedded statement
Property names:
[resharper_]cpp_simple_embedded_statement_style
, [resharper_]simple_embedded_statement_style
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
if (true) foo();
else
foo(); |
on_single_line |
---|
if (true) foo();
else
foo(); |
line_break |
---|
if (true) foo();
else
foo(); |
Break line in simple 'case' statement
Property names:
[resharper_]cpp_simple_case_statement_style
, [resharper_]simple_case_statement_style
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
switch (a) {
case b: break;
case c:
break;
} |
on_single_line |
---|
switch (a) {
case b: break;
case c:
break;
} |
line_break |
---|
switch (a) {
case b: break;
case c:
break;
} |
Break line after member function definition return type
Property names:
[resharper_]cpp_function_definition_return_type_style
, [resharper_]function_definition_return_type_style
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
struct Boo
{
int* foo() { return 0; } char*
bar() { return 0; }
}; |
on_single_line |
---|
struct Boo
{
int* foo() { return 0; } char*
bar() { return 0; }
}; |
line_break |
---|
struct Boo
{
int* foo() { return 0; } char*
bar() { return 0; }
}; |
Break line after top-level function definition return type
Property names:
[resharper_]cpp_toplevel_function_definition_return_type_style
, [resharper_]toplevel_function_definition_return_type_style
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
int* foo() { return 0; } char*
bar() { return 0; } |
on_single_line |
---|
int* foo() { return 0; } char*
bar() { return 0; } |
line_break |
---|
int* foo() { return 0; } char*
bar() { return 0; } |
Break line after member function declaration return type
Property names:
[resharper_]cpp_function_declaration_return_type_style
, [resharper_]function_declaration_return_type_style
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
struct Boo
{
int* foo();
char*
bar();
}; |
on_single_line |
---|
struct Boo
{
int* foo();
char*
bar();
}; |
line_break |
---|
struct Boo
{
int* foo();
char*
bar();
}; |
Break line after top-level function declaration return type
Property names:
[resharper_]cpp_toplevel_function_declaration_return_type_style
, [resharper_]toplevel_function_declaration_return_type_style
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
int* foo();
char*
bar(); |
on_single_line |
---|
int* foo();
char*
bar(); |
line_break |
---|
int* foo();
char*
bar(); |
Break line after the template<...> of a template declaration
Property names:
[resharper_]cpp_break_template_declaration
, [resharper_]break_template_declaration
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
template <class T>
void foo();
template <class T> void bar(); |
on_single_line |
---|
template <class T>
void foo();
template <class T> void bar(); |
line_break |
---|
template <class T>
void foo();
template <class T> void bar(); |
Break line before the requires-clause
Property names:
[resharper_]cpp_line_break_before_requires_clause
, [resharper_]line_break_before_requires_clause
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
template <bool T>
requires T
void foo();
template <bool T> requires T void bar(); |
on_single_line |
---|
template <bool T>
requires T
void foo();
template <bool T> requires T void bar(); |
line_break |
---|
template <bool T>
requires T
void foo();
template <bool T> requires T void bar(); |
Break line before colon in member initializer lists
Property names:
[resharper_]cpp_member_initializer_list_style
, [resharper_]member_initializer_list_style
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
struct X
{
X(): x(0) {}
X(int x)
: x(x) {}
int x;
}; |
on_single_line |
---|
struct X
{
X(): x(0) {}
X(int x)
: x(x) {}
int x;
}; |
line_break |
---|
struct X
{
X(): x(0) {}
X(int x)
: x(x) {}
int x;
}; |
Break line after colon in member initializer lists
Property names:
[resharper_]cpp_line_break_after_colon_in_member_initializer_lists
, [resharper_]line_break_after_colon_in_member_initializer_lists
Possible values:
do_not_change
: Do not changeon_single_line
: Force put on single lineline_break
: Force line breaks
Examples:
do_not_change |
---|
struct X
{
X(): x(0) {}
X(int x)
: x(x) {}
int x;
}; |
on_single_line |
---|
struct X
{
X(): x(0) {}
X(int x)
: x(x) {}
int x;
}; |
line_break |
---|
struct X
{
X(): x(0) {}
X(int x)
: x(x) {}
int x;
}; |
Break line before comma in member initializer lists
Property names:
[resharper_]cpp_line_break_before_comma_in_member_initializer_lists
, [resharper_]line_break_before_comma_in_member_initializer_lists
Possible values:
true | false
Examples:
true |
---|
struct MyStruct
{
MyStruct() : first(f), second(s)
{}
}; |
false |
---|
struct MyStruct
{
MyStruct() : first(f), second(s)
{}
}; |
Break line after comma in member initializer lists
Property names:
[resharper_]cpp_line_break_after_comma_in_member_initializer_lists
, [resharper_]line_break_after_comma_in_member_initializer_lists
Possible values:
true | false
Examples:
true |
---|
struct MyStruct
{
MyStruct() : first(f), second(s)
{}
}; |
false |
---|
struct MyStruct
{
MyStruct() : first(f), second(s)
{}
}; |
Allow C++/CLI generic constraints on the same line
Property names:
[resharper_]cpp_place_type_constraints_on_same_line
, [resharper_]place_type_constraints_on_same_line
Possible values:
true | false
Examples:
true |
---|
generic<class T>class C where T : IEnumerable{}; |
false |
---|
generic<class T>class C where T : IEnumerable{}; |
Line wrapping
Keep existing line breaks
Property names:
[resharper_]cpp_keep_user_linebreaks
, [resharper_]keep_user_linebreaks
Possible values:
true | false
Examples:
Before formatting | After formatting, true |
---|---|
int var = condition
? SomeFunc1()
: SomeFunc2(); | int var = condition
? SomeFunc1()
: SomeFunc2(); |
Before formatting | After formatting, false |
---|---|
int var = condition
? SomeFunc1()
: SomeFunc2(); | int var = condition
? SomeFunc1()
: SomeFunc2(); |
Hard wrap at
Property names:
max_line_length
, [resharper_]cpp_max_line_length
Possible values:
an integer
Prefer wrap before ','
Property names:
[resharper_]cpp_wrap_before_comma
, [resharper_]wrap_before_comma
Possible values:
true | false
Examples:
true |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5, arg6, arg7); |
false |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5, arg6, arg7); |
Prefer wrap before ',' in base clause
Property names:
[resharper_]cpp_wrap_before_comma_in_base_clause
, [resharper_]wrap_before_comma_in_base_clause
Possible values:
true | false
Examples:
true |
---|
class Derived : BaseClass, I1, I2, I3, I4 {} |
false |
---|
class Derived : BaseClass, I1, I2, I3, I4 {} |
Wrap ternary expression
Property names:
[resharper_]cpp_wrap_ternary_expr_style
, [resharper_]wrap_ternary_expr_style
Possible values:
wrap_if_long
: Simple wrapchop_if_long
: Chop if long or multilinechop_always
: Chop always
Examples:
wrap_if_long |
---|
myField = someCondition ? true : false; |
chop_if_long |
---|
myField = someCondition ? true : false; |
chop_always |
---|
myField = someCondition ? true : false; |
Prefer wrap before '?' and ':' in ternary expressions
Property names:
[resharper_]cpp_wrap_before_ternary_opsigns
, [resharper_]wrap_before_ternary_opsigns
Possible values:
true | false
Examples:
true |
---|
return hereGoesSomeBoolExpression ? returnThisIfTrue : returnThatIfFalse; |
false |
---|
return hereGoesSomeBoolExpression ? returnThisIfTrue : returnThatIfFalse; |
Prefer wrap before ':'
Property names:
[resharper_]cpp_wrap_before_colon
, [resharper_]wrap_before_colon
Possible values:
true | false
Examples:
true |
---|
class Derived : BaseClass, I1, I2, I3, I4 {} |
false |
---|
class Derived : BaseClass, I1, I2, I3, I4 {} |
Prefer wrap before first C++/CLI generic constraint
Property names:
[resharper_]cpp_wrap_before_first_type_parameter_constraint
, [resharper_]wrap_before_first_type_parameter_constraint
Possible values:
true | false
Examples:
true |
---|
generic<class T1, T2, T3>class C where T1: I1 where T2: I2
where T3 : ref class
{}; |
false |
---|
generic<class T1, T2, T3>class C where T1: I1 where T2: I2
where T3 : ref class
{}; |
Wrap multiple C++/CLI generic constraints
Property names:
[resharper_]cpp_wrap_multiple_type_parameter_constraints_style
, [resharper_]wrap_multiple_type_parameter_constraints_style
Possible values:
wrap_if_long
: Simple wrapchop_if_long
: Chop if long or multilinechop_always
: Chop always
Examples:
wrap_if_long |
---|
generic<class T1, T2, T3>class C where T1: I1 where T2: I2
where T3 : ref class
{}; |
chop_if_long |
---|
generic<class T1, T2, T3>class C where T1: I1 where T2: I2
where T3 : ref class
{}; |
chop_always |
---|
generic<class T1, T2, T3>class C where T1: I1 where T2: I2
where T3 : ref class
{}; |
Wrap enum definition
Property names:
[resharper_]cpp_wrap_enumeration_style
, [resharper_]wrap_enumeration_style
Possible values:
wrap_if_long
: Simple wrapchop_if_long
: Chop if long or multilinechop_always
: Chop always
Examples:
wrap_if_long |
---|
enum {
ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN
}; |
chop_if_long |
---|
enum {
ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN
}; |
chop_always |
---|
enum {
ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN
}; |
Wrap braced initializer list
Property names:
[resharper_]cpp_wrap_braced_init_list_style
, [resharper_]wrap_braced_init_list_style
Possible values:
wrap_if_long
: Simple wrapchop_if_long
: Chop if long or multilinechop_always
: Chop always
Examples:
wrap_if_long |
---|
std::map<int, std::string> m = {{1, "a"}, {2, {'a', 'b', 'c'}}, {3, s1}, {4, s2}}; |
chop_if_long |
---|
std::map<int, std::string> m = {{1, "a"}, {2, {'a', 'b', 'c'}}, {3, s1}, {4, s2}}; |
chop_always |
---|
std::map<int, std::string> m = {{1, "a"}, {2, {'a', 'b', 'c'}}, {3, s1}, {4, s2}}; |
Wrap base classes list
Property names:
[resharper_]cpp_wrap_base_clause_style
, [resharper_]wrap_base_clause_style
Possible values:
wrap_if_long
: Simple wrapchop_if_long
: Chop if long or multilinechop_always
: Chop always
Examples:
wrap_if_long |
---|
class Derived : BaseClass, I1, I2, I3, I4 {} |
chop_if_long |
---|
class Derived : BaseClass, I1, I2, I3, I4 {} |
chop_always |
---|
class Derived : BaseClass, I1, I2, I3, I4 {} |
Wrap constructor initializer
Property names:
[resharper_]cpp_wrap_ctor_initializer_style
, [resharper_]wrap_ctor_initializer_style
Possible values:
wrap_if_long
: Simple wrapchop_if_long
: Chop if long or multilinechop_always
: Chop always
Examples:
wrap_if_long |
---|
struct XXX
{
X(): x(0), y(0), z(0) {}
XXX(int x, int y, int z) : x(x), y(y), z(z) {}
int x; int y; int z;
}; |
chop_if_long |
---|
struct XXX
{
X(): x(0), y(0), z(0) {}
XXX(int x, int y, int z) : x(x), y(y), z(z) {}
int x; int y; int z;
}; |
chop_always |
---|
struct XXX
{
X(): x(0), y(0), z(0) {}
XXX(int x, int y, int z) : x(x), y(y), z(z) {}
int x; int y; int z;
}; |
Wrap formal parameters
Property names:
[resharper_]cpp_wrap_parameters_style
, [resharper_]wrap_parameters_style
Possible values:
wrap_if_long
: Simple wrapchop_if_long
: Chop if long or multilinechop_always
: Chop always
Examples:
wrap_if_long |
---|
void SomeMethod(int p1, int p2, int p3, int p4) {} |
chop_if_long |
---|
void SomeMethod(int p1, int p2, int p3, int p4) {} |
chop_always |
---|
void SomeMethod(int p1, int p2, int p3, int p4) {} |
Prefer wrap before '(' in declaration
Property names:
[resharper_]cpp_wrap_before_declaration_lpar
, [resharper_]wrap_before_declaration_lpar
Possible values:
true | false
Examples:
true |
---|
void SomeMethod(int p1, int p2, int p3, int p4) {} |
false |
---|
void SomeMethod(int p1, int p2, int p3, int p4) {} |
Prefer wrap after '(' in declaration
Property names:
[resharper_]cpp_wrap_after_declaration_lpar
, [resharper_]wrap_after_declaration_lpar
Possible values:
true | false
Examples:
true |
---|
void SomeMethod(int p1, int p2, int p3, int p4) {} |
false |
---|
void SomeMethod(int p1, int p2, int p3, int p4) {} |
Prefer wrap before ')' in declaration
Property names:
[resharper_]cpp_wrap_before_declaration_rpar
, [resharper_]wrap_before_declaration_rpar
Possible values:
true | false
Examples:
true |
---|
void SomeMethod(int p1, int p2, int p3, int p4) {} |
false |
---|
void SomeMethod(int p1, int p2, int p3, int p4) {} |
Wrap invocation arguments
Property names:
[resharper_]cpp_wrap_arguments_style
, [resharper_]wrap_arguments_style
Possible values:
wrap_if_long
: Simple wrapchop_if_long
: Chop if long or multilinechop_always
: Chop always
Examples:
wrap_if_long |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5); |
chop_if_long |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5); |
chop_always |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5); |
Prefer wrap before '(' in invocation
Property names:
[resharper_]cpp_wrap_before_invocation_lpar
, [resharper_]wrap_before_invocation_lpar
Possible values:
true | false
Examples:
true |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5); |
false |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5); |
Prefer wrap after '(' in invocation
Property names:
[resharper_]cpp_wrap_after_invocation_lpar
, [resharper_]wrap_after_invocation_lpar
Possible values:
true | false
Examples:
true |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5); |
false |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5); |
Prefer wrap before ')' in invocation
Property names:
[resharper_]cpp_wrap_before_invocation_rpar
, [resharper_]wrap_before_invocation_rpar
Possible values:
true | false
Examples:
true |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5); |
false |
---|
CallMethod(arg1, arg2, arg3, arg4, arg5); |
Prefer wrap after '{' in initializer lists
Property names:
[resharper_]cpp_wrap_after_expression_lbrace
, [resharper_]wrap_after_expression_lbrace
Possible values:
true | false
Examples:
true |
---|
map<int, string> m = {{1, "a"}, {2, {'a', 'b', 'c'}}, {3, s1}, {4, s2}}; |
false |
---|
map<int, string> m = {{1, "a"}, {2, {'a', 'b', 'c'}}, {3, s1}, {4, s2}}; |
Prefer wrap before '}' in initializer lists
Property names:
[resharper_]cpp_wrap_before_expression_rbrace
, [resharper_]wrap_before_expression_rbrace
Possible values:
true | false
Examples:
true |
---|
map<int, string> m = {{1, "a"}, {2, {'a', 'b', 'c'}}, {3, s1}, {4, s2}}; |
false |
---|
map<int, string> m = {{1, "a"}, {2, {'a', 'b', 'c'}}, {3, s1}, {4, s2}}; |