Option Reference

Curb implements 118 .editorconfig keys. Every key has a before/after example generated by running Curb.

Use the filter above to search by name. Each group below links to its own index.

  • indent_style — Indent with spaces or tabs.
  • indent_size — Columns per indent level.
  • tab_width — Columns a tab occupies when measuring line width.
  • end_of_line — Line ending to write. auto matches the platform's own (Environment.NewLine), the same default Roslyn uses.
  • insert_final_newline — Ensure the file ends with a newline.
  • trim_trailing_whitespace — Remove trailing whitespace from each line.
  • charset — Byte-order mark handling. preserve keeps whatever the file arrived with.
  • max_line_length — Column target for reflow. off disables reflow entirely and selects preservation mode.
|

Spacing

csharp_space_after_cast
Space between a cast and its operand. Defaults to `false`
csharp_space_after_colon_in_inheritance_clause
Space after the colon in a base list. Defaults to `true`
csharp_space_after_comma
Space after a comma. Defaults to `true`
csharp_space_after_dot
Space after a dot. Defaults to `false`
csharp_space_after_keywords_in_control_flow_statements
Space between a control-flow keyword and its opening parenthesis. Defaults to `true`
csharp_space_after_semicolon_in_for_statement
Space after a semicolon in a for statement. Defaults to `true`
csharp_space_after_unary_operator
Space after unary minus/plus, logical not, and the unsafe pointer prefix operators. Not bitwise complement or prefix increment/decrement. Defaults to `false`
csharp_space_around_binary_operators
Spaces around binary and assignment operators. Defaults to `before_and_after`
csharp_space_around_declaration_statements
Extra spaces in declaration statements. false normalises; ignore leaves them alone. Defaults to `false`
csharp_space_around_ternary_operator
Space around the ?/: of a ternary conditional expression. Defaults to `true`
csharp_space_before_colon_in_inheritance_clause
Space before the colon in a base list. Defaults to `true`
csharp_space_before_comma
Space before a comma. Defaults to `false`
csharp_space_before_dot
Space before a dot. Defaults to `false`
csharp_space_before_open_square_brackets
Space before an opening square bracket. Defaults to `false`
csharp_space_before_semicolon_in_for_statement
Space before a semicolon in a for statement. Defaults to `false`
csharp_space_between_empty_square_brackets
Space inside empty square brackets []. Defaults to `false`
csharp_space_between_method_call_empty_parameter_list_parentheses
Space inside an empty argument list (). Defaults to `false`
csharp_space_between_method_call_name_and_opening_parenthesis
Space between the method name and its opening parenthesis at a call site. Defaults to `false`
csharp_space_between_method_call_parameter_list_parentheses
Space just inside the parentheses of an argument list. Defaults to `false`
csharp_space_between_method_declaration_empty_parameter_list_parentheses
Space inside an empty parameter list (). Defaults to `false`
csharp_space_between_method_declaration_name_and_open_parenthesis
Space between the method name and its opening parenthesis. Defaults to `false`
csharp_space_between_method_declaration_parameter_list_parentheses
Space just inside the parentheses of a parameter list. Defaults to `false`
csharp_space_between_parentheses
Space just inside parentheses for specific constructs. Defaults to `false`
csharp_space_between_square_brackets
Space inside non-empty square brackets. Defaults to `false`

Wrapping

csharp_empty_block_style
How an empty method, constructor, accessor or control-flow body is laid out. together_same_line keeps { } on the signature's line. Defaults to `(not set)`
csharp_keep_existing_linebreaks
Preservation mode. Defaults to true when max_line_length is off. Defaults to `(derived from max_line_length)`
csharp_max_array_initializer_elements_on_line
Chop an array initializer carrying more than this many elements. Defaults to `(not set)`
csharp_max_chained_method_calls_on_line
Chop a chain carrying more than this many calls, regardless of width. Deterministic mode only. Defaults to `(not set)`
csharp_max_formal_parameters_on_line
Chop a parameter list carrying more than this many parameters, regardless of width. Defaults to `(not set)`
csharp_max_initializer_elements_on_line
Chop an initializer carrying more than this many elements. Defaults to `(not set)`
csharp_max_invocation_arguments_on_line
Chop an argument list carrying more than this many arguments. Defaults to `(not set)`
csharp_place_constructor_initializer_on_same_line
Keep : base(...) on the constructor's line rather than giving it its own. Defaults to `true`
csharp_place_event_attribute_on_same_line
Where an event's attribute section goes. Defaults to `own_line`
csharp_place_field_attribute_on_same_line
Where a field's attribute section goes. Defaults to `own_line`
csharp_place_method_attribute_on_same_line
Where a method's attribute section goes. if_owner_is_single_line joins it when the method fits on one line. Deterministic mode only. Defaults to `own_line`
csharp_place_property_attribute_on_same_line
Where a property's attribute section goes. Defaults to `own_line`
csharp_place_simple_accessorholder_on_single_line
Allow { get; set; } to stay on the property's line. Defaults to `true`
csharp_place_simple_blocks_on_single_line
The same, for a lambda or anonymous method's block body. Defaults to `false`
csharp_place_simple_declaration_blocks_on_single_line
Collapse a method, constructor, operator, destructor, local function or accessor body onto one line when it holds a single statement with no comment and the result fits. Defaults to `false`
csharp_place_simple_enum_on_single_line
Allow a short enum body to stay on one line. Defaults to `true`
csharp_preserve_single_line_blocks
Allow a block the author wrote on one line to stay on one line. Defaults to `true`
csharp_preserve_single_line_statements
Allow a control-flow body the author left on its header's line to stay there. Chained using statements are the exception and take their own lines unless this key is written out and set to true. Defaults to `true`
csharp_wrap_after_dot_in_method_calls
When a chain breaks, leave the dot at the end of the preceding line. Defaults to `false`
csharp_wrap_arguments_style
chop_always gives every argument its own line; wrap_if_long packs arguments instead. Only honoured in deterministic mode (max_line_length set). Defaults to `chop_if_long`
csharp_wrap_before_arrow_with_expressions
When an expression body wraps, put => at the start of the new line. Defaults to `false`
csharp_wrap_before_binary_opsign
When a binary chain breaks, start the new line with the operator. Defaults to `true`
csharp_wrap_before_declaration_rpar
Put a broken parameter list's ) on its own line. Defaults to `(not set)`
csharp_wrap_before_extends_colon
Put a base list on its own line, colon first. Defaults to `false`
csharp_wrap_before_first_method_call
When a chain breaks, break before the first call too, leaving the receiver on its own line. Defaults to `(not set)`
csharp_wrap_before_first_type_parameter_constraint
Put a where clause on its own line. Defaults to `false`
csharp_wrap_before_invocation_rpar
Put a broken argument list's ) on its own line. Defaults to `(not set)`
csharp_wrap_chained_binary_expressions
Break each operand of a long && or || chain onto its own line. chop_always breaks regardless of width; wrap_if_long packs operands instead of breaking every one. Only honoured in deterministic mode (max_line_length set). Defaults to `(not set)`
csharp_wrap_chained_method_calls
Break a chain of three or more calls onto its own line per call once it does not fit. Curb's default behaviour either way; setting the key only makes it explicit. Defaults to `chop_if_long`
csharp_wrap_object_and_collection_initializer_style
chop_always gives every initializer element its own line. Only honoured in deterministic mode. wrap_if_long is not offered: dotnet format forces one member per line once an initializer opens out, so a packed layout could never stay put. Defaults to `chop_if_long`
csharp_wrap_parameters_style
chop_always gives every parameter its own line regardless of width; wrap_if_long packs parameters instead. wrap_if_long is only honoured in deterministic mode (max_line_length set) — chop_always and chop_if_long work in either. Defaults to `chop_if_long`

Blank Lines

csharp_blank_lines_after_block_statements
Blank lines below one of those statements. Defaults to `0`
csharp_blank_lines_after_case
Blank lines below a section's labels, above its first statement. Defaults to `0`
csharp_blank_lines_after_control_transfer_statements
Blank lines below one of those statements. Defaults to `0`
csharp_blank_lines_after_file_scoped_namespace_directive
Blank lines after a file-scoped namespace declaration. Defaults to `1`
csharp_blank_lines_after_using_list
Blank lines below the last using directive, forced exactly rather than floored. Defaults to `1`
csharp_blank_lines_around_accessor
Blank lines between two accessors of the same property, indexer or event. Defaults to `0`
csharp_blank_lines_around_field
Blank lines before and after each field. Defaults to `0`
csharp_blank_lines_around_invocable
Blank lines before and after each method or constructor. 0 means leave the author's. Defaults to `0`
csharp_blank_lines_around_local_method
Blank lines before and after each local function. Defaults to `1`
csharp_blank_lines_around_namespace
Blank lines before and after a namespace declaration. Defaults to `0`
csharp_blank_lines_around_property
Blank lines before and after each property, indexer or event. Defaults to `0`
csharp_blank_lines_around_region
Blank lines before a #region and after its matching #endregion, forced exactly rather than floored. Defaults to `1`
csharp_blank_lines_around_type
Blank lines before and after each type declaration. Defaults to `1`
csharp_blank_lines_before_block_statements
Blank lines above an if/while/for/foreach/do/switch/using/lock/try statement. Defaults to `0`
csharp_blank_lines_before_case
Blank lines above a switch section's first label. Defaults to `0`
csharp_blank_lines_before_control_transfer_statements
Blank lines above a return/throw/break/continue/goto/yield statement. Defaults to `0`
csharp_blank_lines_before_single_line_comment
Blank lines above a // comment that follows real content. Defaults to `0`
csharp_blank_lines_inside_namespace
Blank lines below the opening brace and above the closing brace of a block-scoped namespace, forced exactly rather than floored. Defaults to `0`
csharp_blank_lines_inside_region
Blank lines below a #region and above its matching #endregion, forced exactly rather than floored. Defaults to `1`
csharp_blank_lines_inside_type
Blank lines below the opening brace and above the closing brace of a type, forced exactly rather than floored. Defaults to `0`
csharp_keep_blank_lines_in_code
Maximum consecutive blank lines between statements. Defaults to `1`
csharp_keep_blank_lines_in_declarations
Maximum consecutive blank lines between members. Defaults to `1`
csharp_remove_blank_lines_near_braces_in_code
The same, for a block's opening and closing braces. Defaults to `true`
csharp_remove_blank_lines_near_braces_in_declarations
Force no blank line directly under a type/namespace's opening brace or above its closing one. Defaults to `true`