Option Reference
Curb implements 100 .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 whatever the source 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.
- csharp_new_line_before_open_brace — Which constructs put their opening brace on a new line.
- csharp_new_line_before_else — Put else on its own line rather than joining it to the preceding brace.
- csharp_new_line_before_catch — Put catch on its own line.
- csharp_new_line_before_finally — Put finally on its own line.
- csharp_new_line_before_members_in_object_initializers — Put each member of an object initializer on its own line.
- csharp_new_line_before_members_in_anonymous_types — Put each member of an anonymous type on its own line.
- csharp_new_line_between_query_expression_clauses — Put each clause of a query expression on its own line.
- csharp_indent_case_contents — Indent statements inside a case label.
- csharp_indent_switch_labels — Indent case labels inside their switch.
- csharp_indent_labels — How goto labels are indented.
- csharp_indent_block_contents — Indent statements inside a block.
- csharp_indent_braces — Indent the brace tokens themselves an extra level.
- csharp_indent_case_contents_when_block — Indent a braced case body. csharp_indent_case_contents governs other statements.
- csharp_space_after_cast — Space between a cast and its operand.
- csharp_space_after_keywords_in_control_flow_statements — Space between a control-flow keyword and its opening parenthesis.
- csharp_space_before_colon_in_inheritance_clause — Space before the colon in a base list.
- csharp_space_after_colon_in_inheritance_clause — Space after the colon in a base list.
- csharp_space_around_binary_operators — Spaces around binary and assignment operators.
- csharp_space_around_declaration_statements — Extra spaces in declaration statements. false normalises; ignore leaves them alone.
- csharp_space_after_comma — Space after a comma.
- csharp_space_before_comma — Space before a comma.
- csharp_space_between_parentheses — Space just inside parentheses for specific constructs.
- csharp_space_between_method_declaration_parameter_list_parentheses — Space just inside the parentheses of a parameter list.
- csharp_space_between_method_declaration_empty_parameter_list_parentheses — Space inside an empty parameter list ().
- csharp_space_between_method_declaration_name_and_open_parenthesis — Space between the method name and its opening parenthesis.
- csharp_space_between_method_call_parameter_list_parentheses — Space just inside the parentheses of an argument list.
- csharp_space_between_method_call_empty_parameter_list_parentheses — Space inside an empty argument list ().
- csharp_space_between_method_call_name_and_opening_parenthesis — Space between the method name and its opening parenthesis at a call site.
- csharp_space_before_open_square_brackets — Space before an opening square bracket.
- csharp_space_between_empty_square_brackets — Space inside empty square brackets [].
- csharp_space_between_square_brackets — Space inside non-empty square brackets.
- csharp_space_before_dot — Space before a dot.
- csharp_space_after_dot — Space after a dot.
- csharp_space_before_semicolon_in_for_statement — Space before a semicolon in a for statement.
- csharp_space_after_semicolon_in_for_statement — Space after a semicolon in a for statement.
- csharp_preserve_single_line_blocks — Allow a block the author wrote on one line to stay on one line.
- 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.
- csharp_preserve_single_line_statements — Allow a control-flow body the author left on its header's line to stay there.
- csharp_keep_existing_linebreaks — Preservation mode. Defaults to true when max_line_length is off.
- csharp_wrap_before_first_method_call — When a chain breaks, break before the first call too, leaving the receiver on its own line.
- csharp_wrap_before_first_type_parameter_constraint — Put a where clause on its own line.
- csharp_wrap_before_extends_colon — Put a base list on its own line, colon first.
- csharp_place_constructor_initializer_on_same_line — Keep : base(...) on the constructor's line rather than giving it its own.
- csharp_wrap_before_arrow_with_expressions — When an expression body wraps, put => at the start of the new line.
- csharp_wrap_after_dot_in_method_calls — When a chain breaks, leave the dot at the end of the preceding line.
- 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.
- csharp_place_simple_enum_on_single_line — Allow a short enum body to stay on one line.
- csharp_place_simple_accessorholder_on_single_line — Allow { get; set; } to stay on the property's line.
- 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).
- csharp_wrap_before_binary_opsign — When a binary chain breaks, start the new line with the operator.
- 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.
- 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).
- 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.
- csharp_max_formal_parameters_on_line — Chop a parameter list carrying more than this many parameters, regardless of width.
- csharp_max_invocation_arguments_on_line — Chop an argument list carrying more than this many arguments.
- csharp_max_initializer_elements_on_line — Chop an initializer carrying more than this many elements.
- csharp_max_chained_method_calls_on_line — Chop a chain carrying more than this many calls, regardless of width. Deterministic mode only.
- csharp_max_array_initializer_elements_on_line — Chop an array initializer carrying more than this many elements.
- csharp_wrap_before_declaration_rpar — Put a broken parameter list's ) on its own line.
- csharp_wrap_before_invocation_rpar — Put a broken argument list's ) on its 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.
- csharp_place_field_attribute_on_same_line — Where a field's attribute section goes.
- csharp_place_property_attribute_on_same_line — Where a property's attribute section goes.
- csharp_place_event_attribute_on_same_line — Where an event's attribute section goes.
- csharp_keep_blank_lines_in_declarations — Maximum consecutive blank lines between members.
- csharp_keep_blank_lines_in_code — Maximum consecutive blank lines between statements.
- csharp_blank_lines_around_invocable — Blank lines before and after each method or constructor. 0 means leave the author's.
- csharp_blank_lines_around_type — Blank lines before and after each type declaration.
- csharp_blank_lines_around_property — Blank lines before and after each property, indexer or event.
- csharp_blank_lines_around_field — Blank lines before and after each field.
- csharp_blank_lines_inside_type — Blank lines below the opening brace and above the closing brace of a type.
- csharp_blank_lines_around_namespace — Blank lines before and after a namespace declaration.
- csharp_blank_lines_after_using_list — Blank lines below the last using directive.
- csharp_blank_lines_after_file_scoped_namespace_directive — Blank lines after a file-scoped namespace declaration.
- csharp_style_expression_bodied_methods — Convert eligible block-bodied methods to expression bodies. IDE0022.
- csharp_style_expression_bodied_constructors — Convert eligible block-bodied constructors to expression bodies. IDE0021.
- csharp_style_expression_bodied_operators — Convert eligible block-bodied operators. IDE0023/IDE0024.
- csharp_style_expression_bodied_local_functions — Convert eligible block-bodied local functions. IDE0061.
- csharp_style_expression_bodied_accessors — Convert eligible block-bodied accessors. IDE0027.
- csharp_style_expression_bodied_properties — Convert an eligible single-getter property to an expression body. IDE0025.
- csharp_style_expression_bodied_indexers — Convert eligible block-bodied indexers. IDE0026.
- dotnet_sort_system_directives_first — Put System.* usings before all others.
- dotnet_separate_import_directive_groups — Separate groups of usings by first namespace segment with a blank line.
- csharp_using_directive_placement — Move using directives inside or outside the namespace. IDE0065.
- csharp_preferred_modifier_order — Reorder modifiers to the specified preference. IDE0036. Applied without a compilation.
- csharp_prefer_braces — Add braces to unbraced control-flow bodies. IDE0011. Applied without a compilation.
- csharp_style_namespace_declarations — Convert block namespaces to file-scoped. IDE0161. Applied without a compilation.
- csharp_trailing_comma_in_multiline_lists — Add a trailing comma after the last element of a list that breaks across lines.
- csharp_trailing_comma_in_singleline_lists — Add a trailing comma after the last element even when the list is on one line.
- generated_code — Skip this file entirely. Curb never formats files marked as generated.
- dotnet_diagnostic.ide0055.severity — Set this to none to opt a file out of formatting.
- file_header_template — Insert or correct a // comment header at the top of the file. Supports {fileName}. IDE0073.
Core
charset
Byte-order mark handling. preserve keeps whatever the file arrived with. Defaults to `preserve`
end_of_line
Line ending to write. auto matches whatever the source uses. Defaults to `auto`
indent_size
Columns per indent level. Defaults to `4`
indent_style
Indent with spaces or tabs. Defaults to `space`
insert_final_newline
Ensure the file ends with a newline. Defaults to `true`
max_line_length
Column target for reflow. off disables reflow entirely and selects preservation mode. Defaults to `off`
tab_width
Columns a tab occupies when measuring line width. Defaults to `4`
trim_trailing_whitespace
Remove trailing whitespace from each line. Defaults to `true`
New Lines
csharp_new_line_before_catch
Put catch on its own line. Defaults to `true`
csharp_new_line_before_else
Put else on its own line rather than joining it to the preceding brace. Defaults to `true`
csharp_new_line_before_finally
Put finally on its own line. Defaults to `true`
csharp_new_line_before_members_in_anonymous_types
Put each member of an anonymous type on its own line. Defaults to `false`
csharp_new_line_before_members_in_object_initializers
Put each member of an object initializer on its own line. Defaults to `false`
csharp_new_line_before_open_brace
Which constructs put their opening brace on a new line. Defaults to `all`
csharp_new_line_between_query_expression_clauses
Put each clause of a query expression on its own line. Defaults to `false`
Indentation
csharp_indent_block_contents
Indent statements inside a block. Defaults to `true`
csharp_indent_braces
Indent the brace tokens themselves an extra level. Defaults to `false`
csharp_indent_case_contents
Indent statements inside a case label. Defaults to `true`
csharp_indent_case_contents_when_block
Indent a braced case body. csharp_indent_case_contents governs other statements. Defaults to `true`
csharp_indent_labels
How goto labels are indented. Defaults to `one_less_than_current`
csharp_indent_switch_labels
Indent case labels inside their switch. Defaults to `true`
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_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_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_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. 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_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. 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_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_type
Blank lines before and after each type declaration. Defaults to `0`
csharp_blank_lines_inside_type
Blank lines below the opening brace and above the closing brace of a type. 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`
Expression Bodies
csharp_style_expression_bodied_accessors
Convert eligible block-bodied accessors. IDE0027. Defaults to `false`
csharp_style_expression_bodied_constructors
Convert eligible block-bodied constructors to expression bodies. IDE0021. Defaults to `false`
csharp_style_expression_bodied_indexers
Convert eligible block-bodied indexers. IDE0026. Defaults to `false`
csharp_style_expression_bodied_local_functions
Convert eligible block-bodied local functions. IDE0061. Defaults to `false`
csharp_style_expression_bodied_methods
Convert eligible block-bodied methods to expression bodies. IDE0022. Defaults to `false`
csharp_style_expression_bodied_operators
Convert eligible block-bodied operators. IDE0023/IDE0024. Defaults to `false`
csharp_style_expression_bodied_properties
Convert an eligible single-getter property to an expression body. IDE0025. Defaults to `false`
Usings
csharp_using_directive_placement
Move using directives inside or outside the namespace. IDE0065. Defaults to `(as written)`
dotnet_separate_import_directive_groups
Separate groups of usings by first namespace segment with a blank line. Defaults to `false`
dotnet_sort_system_directives_first
Put System.* usings before all others. Defaults to `false`
Modifiers and Braces
csharp_prefer_braces
Add braces to unbraced control-flow bodies. IDE0011. Applied without a compilation. Defaults to `false`
csharp_preferred_modifier_order
Reorder modifiers to the specified preference. IDE0036. Applied without a compilation. Defaults to `(not set)`
csharp_style_namespace_declarations
Convert block namespaces to file-scoped. IDE0161. Applied without a compilation. Defaults to `(as written)`
Trailing Commas
csharp_trailing_comma_in_multiline_lists
Add a trailing comma after the last element of a list that breaks across lines. Defaults to `false`
csharp_trailing_comma_in_singleline_lists
Add a trailing comma after the last element even when the list is on one line. Defaults to `false`
Suppression
dotnet_diagnostic.ide0055.severity
Set this to none to opt a file out of formatting. Defaults to `warning`
file_header_template
Insert or correct a // comment header at the top of the file. Supports {fileName}. IDE0073. Defaults to `(not set)`
generated_code
Skip this file entirely. Curb never formats files marked as generated. Defaults to `false`