ReSharper 2021.2 Help

C++ - Indentation and Alignment

Indentation

Continuous line indent

Property names:

[resharper_]cpp_continuous_line_indent, [resharper_]continuous_line_indent

Possible values:

  • none

  • single

  • double

Examples:

none

if (condition) { if (condition1) { foo1(); foo2(); } else { foo3(); foo4(); } }

single

if (condition) { if (condition1) { foo1(); foo2(); } else { foo3(); foo4(); } }

double

if (condition) { if (condition1) { foo1(); foo2(); } else { foo3(); foo4(); } }

Use continuous line indent in function declaration and invocation parentheses

Property names:

[resharper_]cpp_use_continuous_line_indent_in_method_pars, [resharper_]use_continuous_line_indent_in_method_pars

Possible values:

true | false

Examples:

true

void Method( int parameter1, int parameter2 ) { Method( parameter1, parameter2 ); }

false

void Method( int parameter1, int parameter2 ) { Method( parameter1, parameter2 ); }

Use continuous line indent in initializer lists

Property names:

[resharper_]cpp_use_continuous_line_indent_in_expression_braces, [resharper_]use_continuous_line_indent_in_expression_braces

Possible values:

true | false

Examples:

true

void Method( int parameter1, int parameter2 ) { Method( parameter1, parameter2 ); }

false

void Method( int parameter1, int parameter2 ) { Method( parameter1, parameter2 ); }

Indent namespace members

Property names:

[resharper_]cpp_namespace_indentation, [resharper_]namespace_indentation

Possible values:

  • none: Do not indent

  • inner: Indent only in inner namespaces

  • all: Indent all

Examples:

none

namespace ns { void a(); namespace inner { void b(); }; };

inner

namespace ns { void a(); namespace inner { void b(); }; };

all

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:

  • none: Do not indent

  • inner: Indent only in inner namespaces

  • all: Indent all

Examples:

none

extern "C++" { void a(); extern "C++" { void b(); }; };

inner

extern "C++" { void a(); extern "C++" { void b(); }; };

all

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 class member from access specifier

Property names:

[resharper_]cpp_indent_class_members_from_access_specifiers, [resharper_]indent_class_members_from_access_specifiers

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:

  • inside: Inside parenthesis (BSD/K&R style)

  • outside: Parenthesis and inside equally (Whitesmiths style)

  • outside_and_inside: Parenthesis 1x, inside 2x (GNU style)

  • none: No indent

Examples:

inside

void Method( int parameter1, int parameter2 );

outside

void Method( int parameter1, int parameter2 );

outside_and_inside

void Method( int parameter1, int parameter2 );

none

void Method( int parameter1, int parameter2 );

Indent method calls' parentheses

Property names:

[resharper_]cpp_indent_invocation_pars, [resharper_]indent_invocation_pars

Possible values:

  • inside: Inside parenthesis (BSD/K&R style)

  • outside: Parenthesis and inside equally (Whitesmiths style)

  • outside_and_inside: Parenthesis 1x, inside 2x (GNU style)

  • none: No indent

Examples:

inside

Method( parameter1, parameter2 );

outside

Method( parameter1, parameter2 );

outside_and_inside

Method( parameter1, parameter2 );

none

Method( parameter1, parameter2 );

Indent statement (if, while, for, etc) parentheses

Property names:

[resharper_]cpp_indent_statement_pars, [resharper_]indent_statement_pars

Possible values:

  • inside: Inside parenthesis (BSD/K&R style)

  • outside: Parenthesis and inside equally (Whitesmiths style)

  • outside_and_inside: Parenthesis 1x, inside 2x (GNU style)

  • none: No indent

Examples:

inside

if ( condition1 && condition2 ) return;

outside

if ( condition1 && condition2 ) return;

outside_and_inside

if ( condition1 && condition2 ) return;

none

if ( condition1 && condition2 ) return;

Preprocessor directives indenting

Property names:

[resharper_]cpp_indent_preprocessor_directives, [resharper_]indent_preprocessor_directives

Possible values:

  • none: No indent

  • normal: Indent

  • do_not_change: Do not change

Examples:

none

void sections() { #pragma omp sections { int x; } }

normal

void sections() { #pragma omp sections { int x; } }

do_not_change

void sections() { #pragma omp sections { int x; } }

Indent C++/CLI generic constraints

Property names:

[resharper_]cpp_indent_type_constraints, [resharper_]indent_type_constraints

Possible values:

true | false

Examples:

true

generic<class T1> class C1 where T1 : I1 {};

false

generic<class T1> class C1 where T1 : I1 {};

Indent comments started at the first column

Property names:

[resharper_]cpp_indent_comment, [resharper_]indent_comment

Possible values:

true | false

Examples:

true

namespace N { // Some comment class C1 { }; };

false

namespace N { // Some comment class C1 { }; };

Place comments at the first column when commenting out code

Property names:

[resharper_]cpp_place_comments_at_first_column, [resharper_]place_comments_at_first_column

Place comments at the first column when commenting out code. Otherwise, comments will use the indentation level of the commented code.

Possible values:

true | false

Align multiline construct

Declarators in declaration

Property names:

[resharper_]cpp_align_multiple_declaration, [resharper_]align_multiple_declaration

Possible values:

true | false

Examples:

true

namespace N { // Some comment class C1 { }; };

false

namespace N { // Some comment class C1 { }; };

Function parameters

Property names:

[resharper_]cpp_align_multiline_parameter, [resharper_]align_multiline_parameter

Possible values:

true | false

Examples:

true

namespace N { // Some comment class C1 { }; };

false

namespace N { // Some comment class C1 { }; };

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);

Initializer list arguments

Property names:

[resharper_]cpp_align_multiline_expression_braces, [resharper_]align_multiline_expression_braces

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

template <typename K, typename V> struct map;

false

template <typename K, typename V> struct 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

template <typename K, typename V> struct map;

false

template <typename K, typename V> struct map;

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:

  • align_all: Align

  • align_not_nested: Align except when nested

  • none: No align

Examples:

align_all

class Class< T1 , T3> : Base , SomeInterface { void fooCall( int firstParameter , int secondParameter) { fooCall( firstParameter , secondParameter); } }

align_not_nested

class Class< T1 , T3> : Base , SomeInterface { void fooCall( int firstParameter , int secondParameter) { fooCall( firstParameter , secondParameter); } }

none

class Class< T1 , T3> : Base , SomeInterface { void fooCall( int firstParameter , int secondParameter) { fooCall( firstParameter , secondParameter); } }

Indent aligned ?: operator

Property names:

[resharper_]cpp_indent_aligned_ternary, [resharper_]indent_aligned_ternary

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); } }

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

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();

Align similar code in columns

Fix column alignment in adjacent lines

Property names:

[resharper_]cpp_int_align_fix_in_adjacent, [resharper_]int_align_fix_in_adjacent

When formatting some code, also fix column alignment in adjacent lines if needed

Possible values:

true | false

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 */ }
Last modified: 21 October 2021