C++ - Indentation and Alignment
Indentation
Continuous line indent
Property names:
[resharper_]cpp_continuous_line_indent
, [resharper_]continuous_line_indent
Possible values:
-
double
-
single
-
none
Examples:
double |
int·x·=·foo1()·+
····foo2(); |
single |
int·x·=·foo1()·+
··foo2(); |
none |
int·x·=·foo1()·+
foo2(); |
Indent namespace members
Property names:
[resharper_]cpp_namespace_indentation
, [resharper_]namespace_indentation
Possible values:
-
all
: Indent all -
inner
: Indent only in inner namespaces -
none
: Do not indent
Examples:
all |
namespace·ns
{
··void·a();
··namespace·inner
··{
····void·b();
··};
}; |
inner |
namespace·ns
{
void·a();
namespace·inner
{
··void·b();
};
}; |
none |
namespace·ns
{
void·a();
namespace·inner
{
void·b();
};
}; |
Indent linkage specification block members
Property names:
[resharper_]cpp_linkage_specification_indentation
, [resharper_]linkage_specification_indentation
Possible values:
-
all
: Indent all -
inner
: Indent only in inner namespaces -
none
: Do not indent
Examples:
all |
extern·"C++"·{
··void·a();
··extern·"C++"·{
····void·b();
··};
}; |
inner |
extern·"C++"·{
void·a();
extern·"C++"·{
··void·b();
};
}; |
none |
extern·"C++"·{
void·a();
extern·"C++"·{
void·b();
};
}; |
Indent access specifier from class
Property names:
[resharper_]cpp_indent_access_specifiers_from_class
, [resharper_]indent_access_specifiers_from_class
Possible values:
true | false
Examples:
true |
class·C
{
··public:
··void·a();
}; |
false |
class·C
{
public:
··void·a();
}; |
Indent if a function definition or declaration is wrapped after the type
Property names:
[resharper_]cpp_indent_wrapped_function_names
, [resharper_]indent_wrapped_function_names
Possible values:
true | false
Examples:
true |
void
··foo()
{
} |
false |
void
foo()
{
} |
Indent "case" from "switch"
Property names:
[resharper_]cpp_indent_switch_labels
, [resharper_]indent_switch_labels
Possible values:
true | false
Examples:
true |
switch·(expression)
{
··case·0:
····{
······foo();
······break;
····}
} |
false |
switch·(expression)
{
case·0:
··{
····foo();
····break;
··}
} |
Indent function declarations' parentheses
Property names:
[resharper_]cpp_indent_method_decl_pars
, [resharper_]indent_method_decl_pars
Possible values:
-
outside_and_inside
: Parenthesis 1x, inside 2x (GNU style) -
none
: No indent -
inside
: Inside parenthesis (BSD/K&R style) -
outside
: Parenthesis and inside equally (Whitesmiths style)
Examples:
outside_and_inside |
void·Method(
····int·parameter1,
····int·parameter2
··); |
none |
void·Method(
int·parameter1,
int·parameter2
); |
inside |
void·Method(
··int·parameter1,
··int·parameter2
); |
outside |
void·Method(
··int·parameter1,
··int·parameter2
··); |
Indent method calls' parentheses
Property names:
[resharper_]cpp_indent_invocation_pars
, [resharper_]indent_invocation_pars
Possible values:
-
outside_and_inside
: Parenthesis 1x, inside 2x (GNU style) -
none
: No indent -
inside
: Inside parenthesis (BSD/K&R style) -
outside
: Parenthesis and inside equally (Whitesmiths style)
Examples:
outside_and_inside |
Method(
··int·parameter1,
··int·parameter2
); |
none |
Method(
··int·parameter1,
··int·parameter2
); |
inside |
Method(
··int·parameter1,
··int·parameter2
); |
outside |
Method(
··int·parameter1,
··int·parameter2
); |
Indent statement (if, while, for, etc) parentheses
Property names:
[resharper_]cpp_indent_statement_pars
, [resharper_]indent_statement_pars
Possible values:
-
outside_and_inside
: Parenthesis 1x, inside 2x (GNU style) -
none
: No indent -
inside
: Inside parenthesis (BSD/K&R style) -
outside
: Parenthesis and inside equally (Whitesmiths style)
Examples:
outside_and_inside |
if·(
····condition1&&
····condition2
··)
··return; |
none |
if·(
condition1&&
condition2
)
··return; |
inside |
if·(
··condition1&&
··condition2
)
··return; |
outside |
if·(
··condition1&&
··condition2
··)
··return; |
Preprocessor directives indenting
Property names:
[resharper_]cpp_indent_preprocessor_directives
, [resharper_]indent_preprocessor_directives
Possible values:
-
do_not_change
: Do not change -
normal
: Indent -
none
: No indent
Examples:
do_not_change |
void·sections()
{
#pragma·omp·sections
··{
····int·x;
··}
} |
normal |
void·sections()
{
··#pragma·omp·sections
··{
····int·x;
··}
} |
none |
void·sections()
{
#pragma·omp·sections
··{
····int·x;
··}
} |
Align Multiline Construct
Declarators in declaration
Property names:
[resharper_]cpp_align_multiple_declaration
, [resharper_]align_multiple_declaration
Possible values:
true | false
Examples:
true |
int·first,
····second |
false |
int·first,
··second |
Function parameters
Property names:
[resharper_]cpp_align_multiline_parameter
, [resharper_]align_multiline_parameter
Possible values:
true | false
Examples:
true |
double·average(double·first,
···············double·second); |
false |
double·average(double·first,
··double·second); |
Call arguments
Property names:
[resharper_]cpp_align_multiline_argument
, [resharper_]align_multiline_argument
Possible values:
true | false
Examples:
true |
object.method(first,
··············second); |
false |
object.method(first,
··second); |
First call argument by '('
Property names:
[resharper_]cpp_align_first_arg_by_paren
, [resharper_]align_first_arg_by_paren
Possible values:
true | false
Examples:
true |
object.method(
··············first,
··············second); |
false |
object.method(
··first,
··second); |
Template parameters in template declaration
Property names:
[resharper_]cpp_align_multiline_type_parameter
, [resharper_]align_multiline_type_parameter
Possible values:
true | false
Examples:
true |
template·<typename·K,
··········typename·V>
struct·map; |
false |
template·<typename·K,
··typename·V>
struct·map; |
Template arguments
Property names:
[resharper_]cpp_align_multiline_type_argument
, [resharper_]align_multiline_type_argument
Possible values:
true | false
Examples:
true |
std::map<char·*,
·········MyStruct>·my_map; |
false |
std::map<char·*,
··MyStruct>·my_map; |
Base classes in class base clause
Property names:
[resharper_]cpp_align_multiline_extends_list
, [resharper_]align_multiline_extends_list
Possible values:
true | false
Examples:
true |
struct·MyStruct·:·Base1,
··················Base2
{
}; |
false |
struct·MyStruct·:·Base1,
··Base2
{
}; |
Member initializers in member initializer lists
Property names:
[resharper_]cpp_align_multiline_ctor_init
, [resharper_]align_multiline_ctor_init
Possible values:
true | false
Examples:
true |
struct·MyStruct
{
··MyStruct()·:·first(f),
···············second(s)
··{
··}
}; |
false |
struct·MyStruct
{
··MyStruct()·:·first(f),
····second(s)
··{
··}
}; |
Outdent commas
Property names:
[resharper_]cpp_outdent_commas
, [resharper_]outdent_commas
Possible values:
true | false
Examples:
true |
class·Class<
····T1
··,·T3>·:
··Base
,·SomeInterface
{
··void·fooCall(
····int·firstParameter
··,·int·secondParameter)
··{
····fooCall(
······firstParameter
····,·secondParameter);
··}
} |
false |
class·Class<
····T1
····,·T3>·:
··Base
··,·SomeInterface
{
··void·fooCall(
····int·firstParameter
····,·int·secondParameter)
··{
····fooCall(
······firstParameter
······,·secondParameter);
··}
} |
?: operator
Property names:
[resharper_]cpp_align_ternary
, [resharper_]align_ternary
Possible values:
-
none
: No align -
align_not_nested
: Align except when nested -
align_all
: Align
Examples:
none |
int·var·=·56·+·(cond1
··?·result1
··:·cond2
··?·result2
··:·result3); |
align_not_nested |
int·var·=·56·+·(cond1
··················?·result1
··················:·cond2
··················?·result2
··················:·result3); |
align_all |
int·var·=·56·+·(cond1
··················?·result1
··················:·cond2
······················?·result2
······················:·result3); |
Chained method calls
Property names:
[resharper_]cpp_align_multiline_calls_chain
, [resharper_]align_multiline_calls_chain
Possible values:
true | false
Examples:
true |
struct·X
{
··X·foo(X·x)
··{
····x.foo()
·····.foo()
·····.foo();
··}
}; |
false |
struct·X
{
··X·foo(X·x)
··{
····x.foo()
······.foo()
······.foo();
··}
}; |
Outdent "." and "->" in chained method calls
Property names:
[resharper_]cpp_outdent_dots
, [resharper_]outdent_dots
Possible values:
true | false
Examples:
true |
auto·a·=
··MyVar
·.SomeMethod()
->OtherMethod()
·.ThirdMethod();
auto·b·=·MyVar
········.SomeMethod()
·······->OtherMethod()
········.ThirdMethod(); |
false |
auto·a·=
··MyVar
··.SomeMethod()
··->OtherMethod()
··.ThirdMethod();
auto·b·=·MyVar
·········.SomeMethod()
·········->OtherMethod()
·········.ThirdMethod(); |
Chained binary expressions
Property names:
[resharper_]cpp_align_multiline_binary_expressions_chain
, [resharper_]align_multiline_binary_expressions_chain
Possible values:
true | false
Examples:
true |
int·var·=·1
··········+·2
··········+·3; |
false |
int·var·=·1
··+·2
··+·3; |
Align Similar Code In Columns
Assignments
Property names:
[resharper_]cpp_int_align_eq
, [resharper_]int_align_eq
Possible values:
true | false
Examples:
true |
const·char*·x···=·"x";
SomeClass·xxxxx·=·"xxxxx";
int·xxx;
int&·y·=·xxx; |
false |
const·char*·x·=·"x";
SomeClass·xxxxx·=·"xxxxx";
int·xxx;
int&·y·=·xxx; |
Declaration names
Property names:
[resharper_]cpp_int_align_declaration_names
, [resharper_]int_align_declaration_names
Possible values:
true | false
Examples:
true |
const·char*·x·=·"x";
SomeClass···xxxxx·=·"xxxxx";
int·········xxx;
int&········y·=·xxx; |
false |
const·char*·x·=·"x";
SomeClass·xxxxx·=·"xxxxx";
int·xxx;
int&·y·=·xxx; |
End comments
Property names:
[resharper_]cpp_int_align_comments
, [resharper_]int_align_comments
Possible values:
true | false
Examples:
true |
void·foo()
{
··DoSomething();·······//·I'm
··auto·y·=·6;··········//·forced
··while·(y·>·0)·y--;···//·to
··DoSomethingElse();···/*·document·*/
··auto·z·=·10;·········/*·my·code·*/
··while·(z·<·100)·z++;·/*·profusely·*/
} |
false |
void·foo()
{
··DoSomething();·//·I'm
··auto·y·=·6;·//·forced
··while·(y·>·0)·y--;·//·to
··DoSomethingElse();·/*·document·*/
··auto·z·=·10;·/*·my·code·*/
··while·(z·<·100)·z++;·/*·profusely·*/
} |