﻿---
title: Option Reference
description: 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...
url: https://docs-v3-preview.elastic.dev/reference
---

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

## [Core](https://docs-v3-preview.elastic.dev/reference/core)

- [indent_style](https://docs-v3-preview.elastic.dev/reference/core/indent_style) — Indent with spaces or tabs.
- [indent_size](https://docs-v3-preview.elastic.dev/reference/core/indent_size) — Columns per indent level.
- [tab_width](https://docs-v3-preview.elastic.dev/reference/core/tab_width) — Columns a tab occupies when measuring line width.
- [end_of_line](https://docs-v3-preview.elastic.dev/reference/core/end_of_line) — Line ending to write. auto matches whatever the source uses.
- [insert_final_newline](https://docs-v3-preview.elastic.dev/reference/core/insert_final_newline) — Ensure the file ends with a newline.
- [trim_trailing_whitespace](https://docs-v3-preview.elastic.dev/reference/core/trim_trailing_whitespace) — Remove trailing whitespace from each line.
- [charset](https://docs-v3-preview.elastic.dev/reference/core/charset) — Byte-order mark handling. preserve keeps whatever the file arrived with.
- [max_line_length](https://docs-v3-preview.elastic.dev/reference/core/max_line_length) — Column target for reflow. off disables reflow entirely and selects preservation mode.


## [New Lines](https://docs-v3-preview.elastic.dev/reference/new-lines)

- [csharp_new_line_before_open_brace](https://docs-v3-preview.elastic.dev/reference/new-lines/csharp_new_line_before_open_brace) — Which constructs put their opening brace on a new line.
- [csharp_new_line_before_else](https://docs-v3-preview.elastic.dev/reference/new-lines/csharp_new_line_before_else) — Put else on its own line rather than joining it to the preceding brace.
- [csharp_new_line_before_catch](https://docs-v3-preview.elastic.dev/reference/new-lines/csharp_new_line_before_catch) — Put catch on its own line.
- [csharp_new_line_before_finally](https://docs-v3-preview.elastic.dev/reference/new-lines/csharp_new_line_before_finally) — Put finally on its own line.
- [csharp_new_line_before_members_in_object_initializers](https://docs-v3-preview.elastic.dev/reference/new-lines/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](https://docs-v3-preview.elastic.dev/reference/new-lines/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](https://docs-v3-preview.elastic.dev/reference/new-lines/csharp_new_line_between_query_expression_clauses) — Put each clause of a query expression on its own line.


## [Indentation](https://docs-v3-preview.elastic.dev/reference/indentation)

- [csharp_indent_case_contents](https://docs-v3-preview.elastic.dev/reference/indentation/csharp_indent_case_contents) — Indent statements inside a case label.
- [csharp_indent_switch_labels](https://docs-v3-preview.elastic.dev/reference/indentation/csharp_indent_switch_labels) — Indent case labels inside their switch.
- [csharp_indent_labels](https://docs-v3-preview.elastic.dev/reference/indentation/csharp_indent_labels) — How goto labels are indented.
- [csharp_indent_block_contents](https://docs-v3-preview.elastic.dev/reference/indentation/csharp_indent_block_contents) — Indent statements inside a block.
- [csharp_indent_braces](https://docs-v3-preview.elastic.dev/reference/indentation/csharp_indent_braces) — Indent the brace tokens themselves an extra level.
- [csharp_indent_case_contents_when_block](https://docs-v3-preview.elastic.dev/reference/indentation/csharp_indent_case_contents_when_block) — Indent a braced case body. csharp_indent_case_contents governs other statements.


## [Spacing](https://docs-v3-preview.elastic.dev/reference/spacing)

- [csharp_space_after_cast](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_after_cast) — Space between a cast and its operand.
- [csharp_space_after_keywords_in_control_flow_statements](https://docs-v3-preview.elastic.dev/reference/spacing/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](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_before_colon_in_inheritance_clause) — Space before the colon in a base list.
- [csharp_space_after_colon_in_inheritance_clause](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_after_colon_in_inheritance_clause) — Space after the colon in a base list.
- [csharp_space_around_binary_operators](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_around_binary_operators) — Spaces around binary and assignment operators.
- [csharp_space_around_declaration_statements](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_around_declaration_statements) — Extra spaces in declaration statements. false normalises; ignore leaves them alone.
- [csharp_space_after_comma](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_after_comma) — Space after a comma.
- [csharp_space_before_comma](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_before_comma) — Space before a comma.
- [csharp_space_between_parentheses](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_between_parentheses) — Space just inside parentheses for specific constructs.
- [csharp_space_between_method_declaration_parameter_list_parentheses](https://docs-v3-preview.elastic.dev/reference/spacing/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](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_between_method_declaration_empty_parameter_list_parentheses) — Space inside an empty parameter list ().
- [csharp_space_between_method_declaration_name_and_open_parenthesis](https://docs-v3-preview.elastic.dev/reference/spacing/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](https://docs-v3-preview.elastic.dev/reference/spacing/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](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_between_method_call_empty_parameter_list_parentheses) — Space inside an empty argument list ().
- [csharp_space_between_method_call_name_and_opening_parenthesis](https://docs-v3-preview.elastic.dev/reference/spacing/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](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_before_open_square_brackets) — Space before an opening square bracket.
- [csharp_space_between_empty_square_brackets](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_between_empty_square_brackets) — Space inside empty square brackets [].
- [csharp_space_between_square_brackets](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_between_square_brackets) — Space inside non-empty square brackets.
- [csharp_space_before_dot](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_before_dot) — Space before a dot.
- [csharp_space_after_dot](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_after_dot) — Space after a dot.
- [csharp_space_before_semicolon_in_for_statement](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_before_semicolon_in_for_statement) — Space before a semicolon in a for statement.
- [csharp_space_after_semicolon_in_for_statement](https://docs-v3-preview.elastic.dev/reference/spacing/csharp_space_after_semicolon_in_for_statement) — Space after a semicolon in a for statement.


## [Wrapping](https://docs-v3-preview.elastic.dev/reference/wrapping)

- [csharp_preserve_single_line_blocks](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_preserve_single_line_blocks) — Allow a block the author wrote on one line to stay on one line.
- [csharp_empty_block_style](https://docs-v3-preview.elastic.dev/reference/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.
- [csharp_preserve_single_line_statements](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_keep_existing_linebreaks) — Preservation mode. Defaults to true when max_line_length is off.
- [csharp_wrap_before_first_method_call](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_wrap_before_first_type_parameter_constraint) — Put a where clause on its own line.
- [csharp_wrap_before_extends_colon](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_wrap_before_extends_colon) — Put a base list on its own line, colon first.
- [csharp_place_constructor_initializer_on_same_line](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_place_simple_enum_on_single_line) — Allow a short enum body to stay on one line.
- [csharp_place_simple_accessorholder_on_single_line](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_place_simple_accessorholder_on_single_line) — Allow { get; set; } to stay on the property's line.
- [csharp_wrap_chained_binary_expressions](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_wrap_before_binary_opsign) — When a binary chain breaks, start the new line with the operator.
- [csharp_wrap_parameters_style](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_max_invocation_arguments_on_line) — Chop an argument list carrying more than this many arguments.
- [csharp_max_initializer_elements_on_line](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_max_initializer_elements_on_line) — Chop an initializer carrying more than this many elements.
- [csharp_max_chained_method_calls_on_line](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_max_array_initializer_elements_on_line) — Chop an array initializer carrying more than this many elements.
- [csharp_wrap_before_declaration_rpar](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_wrap_before_declaration_rpar) — Put a broken parameter list's ) on its own line.
- [csharp_wrap_before_invocation_rpar](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_wrap_before_invocation_rpar) — Put a broken argument list's ) on its own line.
- [csharp_place_method_attribute_on_same_line](https://docs-v3-preview.elastic.dev/reference/wrapping/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](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_place_field_attribute_on_same_line) — Where a field's attribute section goes.
- [csharp_place_property_attribute_on_same_line](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_place_property_attribute_on_same_line) — Where a property's attribute section goes.
- [csharp_place_event_attribute_on_same_line](https://docs-v3-preview.elastic.dev/reference/wrapping/csharp_place_event_attribute_on_same_line) — Where an event's attribute section goes.


## [Blank Lines](https://docs-v3-preview.elastic.dev/reference/blank-lines)

- [csharp_keep_blank_lines_in_declarations](https://docs-v3-preview.elastic.dev/reference/blank-lines/csharp_keep_blank_lines_in_declarations) — Maximum consecutive blank lines between members.
- [csharp_keep_blank_lines_in_code](https://docs-v3-preview.elastic.dev/reference/blank-lines/csharp_keep_blank_lines_in_code) — Maximum consecutive blank lines between statements.
- [csharp_blank_lines_around_invocable](https://docs-v3-preview.elastic.dev/reference/blank-lines/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](https://docs-v3-preview.elastic.dev/reference/blank-lines/csharp_blank_lines_around_type) — Blank lines before and after each type declaration.
- [csharp_blank_lines_around_property](https://docs-v3-preview.elastic.dev/reference/blank-lines/csharp_blank_lines_around_property) — Blank lines before and after each property, indexer or event.
- [csharp_blank_lines_around_field](https://docs-v3-preview.elastic.dev/reference/blank-lines/csharp_blank_lines_around_field) — Blank lines before and after each field.
- [csharp_blank_lines_inside_type](https://docs-v3-preview.elastic.dev/reference/blank-lines/csharp_blank_lines_inside_type) — Blank lines below the opening brace and above the closing brace of a type.
- [csharp_blank_lines_around_namespace](https://docs-v3-preview.elastic.dev/reference/blank-lines/csharp_blank_lines_around_namespace) — Blank lines before and after a namespace declaration.
- [csharp_blank_lines_after_using_list](https://docs-v3-preview.elastic.dev/reference/blank-lines/csharp_blank_lines_after_using_list) — Blank lines below the last using directive.
- [csharp_blank_lines_after_file_scoped_namespace_directive](https://docs-v3-preview.elastic.dev/reference/blank-lines/csharp_blank_lines_after_file_scoped_namespace_directive) — Blank lines after a file-scoped namespace declaration.


## [Expression Bodies](https://docs-v3-preview.elastic.dev/reference/expression-bodies)

- [csharp_style_expression_bodied_methods](https://docs-v3-preview.elastic.dev/reference/expression-bodies/csharp_style_expression_bodied_methods) — Convert eligible block-bodied methods to expression bodies. IDE0022.
- [csharp_style_expression_bodied_constructors](https://docs-v3-preview.elastic.dev/reference/expression-bodies/csharp_style_expression_bodied_constructors) — Convert eligible block-bodied constructors to expression bodies. IDE0021.
- [csharp_style_expression_bodied_operators](https://docs-v3-preview.elastic.dev/reference/expression-bodies/csharp_style_expression_bodied_operators) — Convert eligible block-bodied operators. IDE0023/IDE0024.
- [csharp_style_expression_bodied_local_functions](https://docs-v3-preview.elastic.dev/reference/expression-bodies/csharp_style_expression_bodied_local_functions) — Convert eligible block-bodied local functions. IDE0061.
- [csharp_style_expression_bodied_accessors](https://docs-v3-preview.elastic.dev/reference/expression-bodies/csharp_style_expression_bodied_accessors) — Convert eligible block-bodied accessors. IDE0027.
- [csharp_style_expression_bodied_properties](https://docs-v3-preview.elastic.dev/reference/expression-bodies/csharp_style_expression_bodied_properties) — Convert an eligible single-getter property to an expression body. IDE0025.
- [csharp_style_expression_bodied_indexers](https://docs-v3-preview.elastic.dev/reference/expression-bodies/csharp_style_expression_bodied_indexers) — Convert eligible block-bodied indexers. IDE0026.


## [Usings](https://docs-v3-preview.elastic.dev/reference/usings)

- [dotnet_sort_system_directives_first](https://docs-v3-preview.elastic.dev/reference/usings/dotnet_sort_system_directives_first) — Put System.* usings before all others.
- [dotnet_separate_import_directive_groups](https://docs-v3-preview.elastic.dev/reference/usings/dotnet_separate_import_directive_groups) — Separate groups of usings by first namespace segment with a blank line.
- [csharp_using_directive_placement](https://docs-v3-preview.elastic.dev/reference/usings/csharp_using_directive_placement) — Move using directives inside or outside the namespace. IDE0065.


## [Modifiers and Braces](https://docs-v3-preview.elastic.dev/reference/modifiers-and-braces)

- [csharp_preferred_modifier_order](https://docs-v3-preview.elastic.dev/reference/modifiers-and-braces/csharp_preferred_modifier_order) — Reorder modifiers to the specified preference. IDE0036. Applied without a compilation.
- [csharp_prefer_braces](https://docs-v3-preview.elastic.dev/reference/modifiers-and-braces/csharp_prefer_braces) — Add braces to unbraced control-flow bodies. IDE0011. Applied without a compilation.
- [csharp_style_namespace_declarations](https://docs-v3-preview.elastic.dev/reference/modifiers-and-braces/csharp_style_namespace_declarations) — Convert block namespaces to file-scoped. IDE0161. Applied without a compilation.


## [Trailing Commas](https://docs-v3-preview.elastic.dev/reference/trailing-commas)

- [csharp_trailing_comma_in_multiline_lists](https://docs-v3-preview.elastic.dev/reference/trailing-commas/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](https://docs-v3-preview.elastic.dev/reference/trailing-commas/csharp_trailing_comma_in_singleline_lists) — Add a trailing comma after the last element even when the list is on one line.


## [Suppression](https://docs-v3-preview.elastic.dev/reference/suppression)

- [generated_code](https://docs-v3-preview.elastic.dev/reference/suppression/generated_code) — Skip this file entirely. Curb never formats files marked as generated.
- [dotnet_diagnostic.ide0055.severity](https://docs-v3-preview.elastic.dev/reference/suppression/dotnet_diagnostic.ide0055.severity) — Set this to none to opt a file out of formatting.
- [file_header_template](https://docs-v3-preview.elastic.dev/reference/suppression/file_header_template) — Insert or correct a // comment header at the top of the file. Supports {fileName}. IDE0073.

<listing>
</listing>