JetBrains Rider 2025.2 Help

EditorConfig 属性用于 C++:缩进和对齐

缩进

连续行缩进

属性名称:

[resharper_]cpp_continuous_line_indent[resharper_]continuous_line_indent

可能的值:

  • :无

  • 单引号 :单一

  • double :双重

示例:

int x = foo1() + foo2();

单引号

int x = foo1() + foo2();

double

int x = foo1() + foo2();

在函数声明和调用圆括号中使用连续行缩进

属性名称:

[resharper_]cpp_use_continuous_line_indent_in_method_pars[resharper_]use_continuous_line_indent_in_method_pars

可能的值:

true|false

示例:

true

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

false

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

在初始值设定项列表中使用连续行缩进

属性名称:

[resharper_]cpp_use_continuous_line_indent_in_expression_braces[resharper_]use_continuous_line_indent_in_expression_braces

可能的值:

true|false

示例:

true

int a[3] = { 1, 2, 3 };

false

int a[3] = { 1, 2, 3 };

缩进命名空间成员

属性名称:

[resharper_]cpp_namespace_indentation[resharper_]namespace_indentation

可能的值:

  • :不缩进

  • 内部 :仅在内部命名空间中缩进

  • all :全部缩进

示例:

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

内部

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

all

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

缩进链接规范块成员

属性名称:

[resharper_]cpp_linkage_specification_indentation[resharper_]linkage_specification_indentation

可能的值:

  • :不缩进

  • 内部 :仅在内部命名空间中缩进

  • all :全部缩进

示例:

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

内部

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

all

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

缩进导出声明块成员

属性名称:

[resharper_]cpp_indent_export_declaration_members[resharper_]indent_export_declaration_members

可能的值:

true|false

示例:

true

export { void a(); };

false

export { void a(); };

从类缩进访问说明符

属性名称:

[resharper_]cpp_indent_access_specifiers_from_class[resharper_]indent_access_specifiers_from_class

可能的值:

true|false

示例:

true

class C { public: void a(); };

false

class C { public: void a(); };

从访问说明符缩进类成员

属性名称:

[resharper_]cpp_indent_class_members_from_access_specifiers[resharper_]indent_class_members_from_access_specifiers

可能的值:

true|false

示例:

true

class C { public: void a(); };

false

class C { public: void a(); };

缩进成员初始值设定项列表

属性名称:

[resharper_]cpp_indent_member_initializer_list[resharper_]indent_member_initializer_list

可能的值:

true|false

示例:

true

class C { C(int x) : y(x) { } int y; };

false

class C { C(int x) : y(x) { } int y; };

如果函数定义或声明在类型后换行,则缩进

属性名称:

[resharper_]cpp_indent_wrapped_function_names[resharper_]indent_wrapped_function_names

可能的值:

true|false

示例:

true

void foo() { }

false

void foo() { }

缩进 'switch' 中的 'case'

属性名称:

[resharper_]cpp_indent_switch_labels[resharper_]indent_switch_labels

可能的值:

true|false

示例:

true

switch (expression) { case 0: { foo(); break; } }

false

switch (expression) { case 0: { foo(); break; } }

缩进函数声明的圆括号

属性名称:

[resharper_]cpp_indent_method_decl_pars[resharper_]indent_method_decl_pars

可能的值:

  • 内部 :括号内(BSD/K&R 风格)

  • 外部 :括号和内部对齐(Whitesmiths 风格)

  • 外部和内部 :括号 1 次,内部 2 次(GNU 风格)

  • :无缩进

示例:

内部

void Method( int parameter1, int parameter2 );

外部

void Method( int parameter1, int parameter2 );

外部和内部

void Method( int parameter1, int parameter2 );

void Method( int parameter1, int parameter2 );

缩进方法调用的圆括号

属性名称:

[resharper_]cpp_indent_invocation_pars[resharper_]indent_invocation_pars

可能的值:

  • 内部 :括号内(BSD/K&R 风格)

  • 外部 :括号和内部对齐(Whitesmiths 风格)

  • 外部和内部 :括号 1 次,内部 2 次(GNU 风格)

  • :无缩进

示例:

内部

Method( parameter1, parameter2 );

外部

Method( parameter1, parameter2 );

外部和内部

Method( parameter1, parameter2 );

Method( parameter1, parameter2 );

缩进语句(if、while、for 等)圆括号

属性名称:

[resharper_]cpp_indent_statement_pars[resharper_]indent_statement_pars

可能的值:

  • 内部 :括号内(BSD/K&R 风格)

  • 外部 :括号和内部对齐(Whitesmiths 风格)

  • 外部和内部 :括号 1 次,内部 2 次(GNU 风格)

  • :无缩进

示例:

内部

if ( condition1 && condition2 ) return;

外部

if ( condition1 && condition2 ) return;

外部和内部

if ( condition1 && condition2 ) return;

if ( condition1 && condition2 ) return;

预处理程序指令缩进

属性名称:

[resharper_]cpp_indent_preprocessor_directives[resharper_]indent_preprocessor_directives

可能的值:

  • :无缩进

  • 正常 :缩进

  • 不要更改 :不要更改

示例:

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

正常

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

不要更改

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

缩进 C++/CLI 泛型约束

属性名称:

[resharper_]cpp_indent_type_constraints[resharper_]indent_type_constraints

可能的值:

true|false

示例:

true

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

false

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

从第一列开始缩进注释

属性名称:

[resharper_]cpp_indent_comment[resharper_]indent_comment

可能的值:

true|false

示例:

true

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

false

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

注释掉代码时将注释置于第一列

属性名称:

[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.

可能的值:

true|false

对齐多行结构

声明中的声明符

属性名称:

[resharper_]cpp_align_multiple_declaration[resharper_]align_multiple_declaration

可能的值:

true|false

示例:

true

int first, second

false

int first, second

函数参数

属性名称:

[resharper_]cpp_align_multiline_parameter[resharper_]align_multiline_parameter

可能的值:

true|false

示例:

true

double average(double first, double second);

false

double average(double first, double second);

调用参数

属性名称:

[resharper_]cpp_align_multiline_argument[resharper_]align_multiline_argument

可能的值:

true|false

示例:

true

object.method(first, second);

false

object.method(first, second);

将第一个调用实参对齐到 '('

属性名称:

[resharper_]cpp_align_first_arg_by_paren[resharper_]align_first_arg_by_paren

可能的值:

true|false

示例:

true

object.method( first, second);

false

object.method( first, second);

初始值设定项列表实参

属性名称:

[resharper_]cpp_align_multiline_expression_braces[resharper_]align_multiline_expression_braces

可能的值:

true|false

示例:

true

int a[6] = {1, 2, 3 4, 5, 6};

false

int a[6] = {1, 2, 3 4, 5, 6};

模板声明中的模板形参

属性名称:

[resharper_]cpp_align_multiline_type_parameter[resharper_]align_multiline_type_parameter

可能的值:

true|false

示例:

true

template <typename K, typename V> struct map;

false

template <typename K, typename V> struct map;

模板实参

属性名称:

[resharper_]cpp_align_multiline_type_argument[resharper_]align_multiline_type_argument

可能的值:

true|false

示例:

true

std::map<char*, MyStruct> my_map;

false

std::map<char*, MyStruct> my_map;

类基础子句中的基类

属性名称:

[resharper_]cpp_align_multiline_extends_list[resharper_]align_multiline_extends_list

可能的值:

true|false

示例:

true

struct MyStruct : Base1, Base2 { };

false

struct MyStruct : Base1, Base2 { };

成员初始值设定项列表中的成员初始值设定项

属性名称:

[resharper_]cpp_align_multiline_ctor_init[resharper_]align_multiline_ctor_init

可能的值:

true|false

示例:

true

struct MyStruct { MyStruct() : first(f), second(s) { } };

false

struct MyStruct { MyStruct() : first(f), second(s) { } };

减少缩进逗号

属性名称:

[resharper_]cpp_outdent_commas[resharper_]outdent_commas

可能的值:

true|false

示例:

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

?: 运算符

属性名称:

[resharper_]cpp_align_ternary[resharper_]align_ternary

可能的值:

  • align_all: 对齐

  • align_not_nested :除嵌套时外对齐

  • :不对齐

示例:

align_all

int var = 56 + (cond1 ? result1 : cond2 ? result2 : result3);

align_not_nested

int var = 56 + (cond1 ? result1 : cond2 ? result2 : result3);

int var = 56 + (cond1 ? result1 : cond2 ? result2 : result3);

缩进对齐的 ?: 运算符

属性名称:

[resharper_]cpp_indent_aligned_ternary[resharper_]indent_aligned_ternary

可能的值:

true|false

示例:

true

int var = 56 + (cond1 ? result1 : cond2 ? result2 : result3);

false

int var = 56 + (cond1 ? result1 : cond2 ? result2 : result3);

链式方法调用

属性名称:

[resharper_]cpp_align_multiline_calls_chain[resharper_]align_multiline_calls_chain

可能的值:

true|false

示例:

true

struct X { X foo(X x) { x.foo() .foo() .foo(); } };

false

struct X { X foo(X x) { x.foo() .foo() .foo(); } };

减少缩进链式方法调用中的 '.' 和 '->'

属性名称:

[resharper_]cpp_outdent_dots[resharper_]outdent_dots

可能的值:

true|false

示例:

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

链式二元表达式

属性名称:

[resharper_]cpp_align_multiline_binary_expressions_chain[resharper_]align_multiline_binary_expressions_chain

可能的值:

true|false

示例:

true

int var = 1 + 2 + 3;

false

int var = 1 + 2 + 3;

对齐列中的相似代码

修正相邻行中的列对齐

属性名称:

[resharper_]cpp_int_align_fix_in_adjacent[resharper_]int_align_fix_in_adjacent

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

可能的值:

true|false

赋值

属性名称:

[resharper_]cpp_int_align_eq[resharper_]int_align_eq

可能的值:

true|false

示例:

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;

声明名称

属性名称:

[resharper_]cpp_int_align_declaration_names[resharper_]int_align_declaration_names

可能的值:

true|false

示例:

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;

枚举初始值设定项

属性名称:

[resharper_]cpp_int_align_enum_initializers[resharper_]int_align_enum_initializers

可能的值:

true|false

示例:

true

enum class Direction { up = 0b00000001, down = 0b00000010, left = 0b00000100, right = 0b00001000 };

false

enum class Direction { up = 0b00000001, down = 0b00000010, left = 0b00000100, right = 0b00001000 };

位域大小

属性名称:

[resharper_]cpp_int_align_bitfield_sizes[resharper_]int_align_bitfield_sizes

可能的值:

true|false

示例:

true

struct C { int first : 1; int second : 2; };

false

struct C { int first : 1; int second : 2; };

结束注释

属性名称:

[resharper_]cpp_int_align_comments[resharper_]int_align_comments

可能的值:

true|false

示例:

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 */ }
最后修改日期: 2025年 9月 26日