| ############################### |
| # Core EditorConfig Options # |
| ############################### |
| root = true |
| # All files |
| [*] |
| indent_style = space |
| charset = utf-8 |
| |
| # XML project files |
| [*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] |
| indent_size = 2 |
| |
| # XML config files |
| [*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] |
| indent_size = 2 |
| |
| # Code files |
| [*.{cs,csx,vb,vbx}] |
| trim_trailing_whitespace = true |
| tab_width = 4 |
| indent_size = 4 |
| |
| # New line preferences |
| insert_final_newline = true |
| ############################### |
| # .NET Coding Conventions # |
| ############################### |
| [*.{cs,vb}] |
| # Organize usings |
| dotnet_sort_system_directives_first = false |
| # this. preferences |
| dotnet_style_qualification_for_field = false:silent |
| dotnet_style_qualification_for_property = false:silent |
| dotnet_style_qualification_for_method = false:silent |
| dotnet_style_qualification_for_event = false:silent |
| # Language keywords vs BCL types preferences |
| dotnet_style_predefined_type_for_locals_parameters_members = true:silent |
| dotnet_style_predefined_type_for_member_access = true:silent |
| # Parentheses preferences |
| dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent |
| dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent |
| dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent |
| dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent |
| # Modifier preferences |
| dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent |
| dotnet_style_readonly_field = true:suggestion |
| # Expression-level preferences |
| dotnet_style_object_initializer = true:suggestion |
| dotnet_style_collection_initializer = true:suggestion |
| dotnet_style_explicit_tuple_names = true:suggestion |
| dotnet_style_null_propagation = true:suggestion |
| dotnet_style_coalesce_expression = true:silent |
| dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent |
| dotnet_style_prefer_inferred_tuple_names = true:suggestion |
| dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion |
| dotnet_style_prefer_auto_properties = true:silent |
| dotnet_style_prefer_conditional_expression_over_assignment = true:silent |
| dotnet_style_prefer_conditional_expression_over_return = true:silent |
| dotnet_style_prefer_simplified_boolean_expressions = true:suggestion |
| # Operator |
| dotnet_style_operator_placement_when_wrapping = beginning_of_line |
| |
| ############################### |
| # Naming Conventions # |
| ############################### |
| # Style Definitions |
| dotnet_naming_style.pascal_case_style.capitalization = pascal_case |
| # Use PascalCase for constant fields |
| dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion |
| dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields |
| dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style |
| dotnet_naming_symbols.constant_fields.applicable_kinds = field |
| dotnet_naming_symbols.constant_fields.applicable_accessibilities = * |
| dotnet_naming_symbols.constant_fields.required_modifiers = const |
| |
| ############################### |
| # C# Diagnostic # |
| ############################### |
| |
| # IDE0290: Use primary constructor |
| dotnet_diagnostic.IDE0290.severity = silent |
| # IDE0301: Simplify collection initialization |
| dotnet_diagnostic.IDE0301.severity = silent |
| # IDE0305: Simplify collection initialization |
| dotnet_diagnostic.IDE0305.severity = silent |
| |
| ############################### |
| # C# Coding Conventions # |
| ############################### |
| [*.cs] |
| # var preferences |
| csharp_style_var_for_built_in_types = true:silent |
| csharp_style_var_when_type_is_apparent = true:silent |
| csharp_style_var_elsewhere = true:silent |
| # Expression-bodied members |
| csharp_style_expression_bodied_methods = false:silent |
| csharp_style_expression_bodied_constructors = false:silent |
| csharp_style_expression_bodied_operators = false:silent |
| csharp_style_expression_bodied_properties = true:silent |
| csharp_style_expression_bodied_indexers = true:silent |
| csharp_style_expression_bodied_accessors = true:silent |
| csharp_style_expression_bodied_lambdas = true:silent |
| csharp_style_expression_bodied_local_functions = false:silent |
| # Pattern matching preferences |
| csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion |
| csharp_style_pattern_matching_over_as_with_null_check = true:suggestion |
| # Null-checking preferences |
| csharp_style_throw_expression = true:suggestion |
| csharp_style_conditional_delegate_call = true:suggestion |
| # Modifier preferences |
| csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:suggestion |
| # Expression-level preferences |
| csharp_prefer_braces = true:silent |
| csharp_style_deconstructed_variable_declaration = true:suggestion |
| csharp_prefer_simple_default_expression = true:suggestion |
| csharp_prefer_simple_using_statement = true:suggestion |
| csharp_style_prefer_local_over_anonymous_function = true:suggestion |
| csharp_style_prefer_method_group_conversion = true:silent |
| csharp_style_prefer_top_level_statements = true:silent |
| csharp_style_inlined_variable_declaration = true:suggestion |
| # Namespace |
| # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0065#csharp_using_directive_placement |
| csharp_using_directive_placement = inside_namespace:error |
| # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0160-ide0161#csharp_style_namespace_declarations |
| csharp_style_namespace_declarations = file_scoped:error |
| ############################### |
| # C# Formatting Rules # |
| ############################### |
| # New line preferences |
| csharp_new_line_before_open_brace = all |
| csharp_new_line_before_else = true |
| csharp_new_line_before_catch = true |
| csharp_new_line_before_finally = true |
| csharp_new_line_before_members_in_object_initializers = false |
| csharp_new_line_before_members_in_anonymous_types = true |
| csharp_new_line_between_query_expression_clauses = true |
| # Indentation preferences |
| csharp_indent_case_contents = true |
| csharp_indent_switch_labels = true |
| csharp_indent_labels = flush_left |
| # Space preferences |
| csharp_space_after_cast = true |
| csharp_space_after_keywords_in_control_flow_statements = true |
| csharp_space_between_method_call_parameter_list_parentheses = false |
| csharp_space_between_method_declaration_parameter_list_parentheses = false |
| csharp_space_between_parentheses = false |
| csharp_space_before_colon_in_inheritance_clause = true |
| csharp_space_after_colon_in_inheritance_clause = true |
| csharp_space_around_binary_operators = before_and_after |
| csharp_space_between_method_declaration_empty_parameter_list_parentheses = false |
| csharp_space_between_method_call_name_and_opening_parenthesis = false |
| csharp_space_between_method_call_empty_parameter_list_parentheses = false |
| # Wrapping preferences |
| csharp_preserve_single_line_statements = true |
| csharp_preserve_single_line_blocks = true |
| |
| ############################### |
| # ReSharper properties # |
| # See the url, for options # |
| ############################### |
| ############################### |
| # Csharp specific # |
| ############################### |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_LineBreaksPageSchema.html#resharper_csharp_insert_final_newline |
| resharper_csharp_empty_block_style = together_same_line |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_BlankLinesPageScheme.html?keymap=rs#resharper_csharp_keep_blank_lines_in_code |
| resharper_csharp_keep_blank_lines_in_code = 1 |
| # https://www.jetbrains.com/help/rider/EditorConfig_CSHARP_LineBreaksPageSchema.html#resharper_csharp_keep_existing_attribute_arrangement |
| resharper_csharp_keep_existing_attribute_arrangement = true |
| # https://www.jetbrains.com/help/rider/EditorConfig_CSHARP_CSharpIndentStylePageSchema.html#resharper_csharp_align_linq_query |
| resharper_csharp_align_linq_query = true |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_LineBreaksPageSchema.html#Arrangement_of_expression_bodied_members |
| resharper_csharp_keep_existing_expr_member_arrangement = true |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_CSharpIndentStylePageSchema.html#resharper_csharp_int_align_comments |
| resharper_csharp_int_align_comments = true |
| |
| # blank_lines |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_BlankLinesPageScheme.html?keymap=rs#resharper_csharp_keep_blank_lines_in_declarations |
| resharper_csharp_keep_blank_lines_in_declarations = 1 |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_BlankLinesPageScheme.html#resharper_csharp_blank_lines_after_block_statements |
| resharper_csharp_blank_lines_after_block_statements = 0 |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_BlankLinesPageScheme.html#resharper_csharp_blank_lines_before_multiline_statements |
| resharper_csharp_blank_lines_before_multiline_statements = 0 |
| # https://www.jetbrains.com/help/rider/EditorConfig_CSHARP_BlankLinesPageScheme.html#resharper_csharp_blank_lines_around_single_line_type |
| resharper_csharp_blank_lines_around_single_line_type = 0 |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_BlankLinesPageScheme.html#resharper_csharp_blank_lines_around_invocable |
| resharper_csharp_blank_lines_around_invocable = 0 |
| |
| # Line wrapping |
| # https://www.jetbrains.com/help/rider/EditorConfig_CSHARP_LineBreaksPageSchema.html#resharper_csharp_max_line_length |
| resharper_csharp_max_line_length = 0 # Default 120, but DC recommends setting it to 0 aka disabled. |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_LineBreaksPageSchema.html?keymap=rs#resharper_csharp_wrap_before_arrow_with_expressions |
| resharper_wrap_before_arrow_with_expressions = false |
| #################################################################################### |
| ## These are only active if enabled in code cleanup profile. ## |
| ## Editor | Code Cleanup | Apply code body style (expression body vs. block body) ## |
| #################################################################################### |
| ## https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_CSharpCodeStylePageImplSchema.html#resharper_csharp_constructor_or_destructor_body |
| resharper_constructor_or_destructor_body = expression_body |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_CSharpCodeStylePageImplSchema.html?keymap=rs#resharper_csharp_local_function_body |
| resharper_local_function_body = expression_body |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_CSharpCodeStylePageImplSchema.html?keymap=rs#resharper_csharp_method_or_operator_body |
| resharper_method_or_operator_body = expression_body |
| #################################################################################### |
| ## These are only active if enabled in code cleanup profile. ## |
| ## Editor | Code Cleanup | Optimize 'using' directives ## |
| #################################################################################### |
| # https://www.jetbrains.com/help/rider/EditorConfig_CSHARP_CSharpCodeStylePageImplSchema.html#resharper_csharp_add_imports_to_deepest_scope |
| resharper_csharp_add_imports_to_deepest_scope = true |
| # https://www.jetbrains.com/help/rider/EditorConfig_CSHARP_CSharpCodeStylePageImplSchema.html#resharper_csharp_qualified_using_at_nested_scope |
| resharper_csharp_qualified_using_at_nested_scope = true |
| ################################################################ |
| # Duplicates of options already set in .NET Coding Conventions # |
| ################################################################ |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_CSharpCodeStylePageImplSchema.html?keymap=rs#resharper_csharp_sort_usings_with_system_first |
| # resharper_sort_usings_with_system_first = false |
| # https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_LineBreaksPageSchema.html?keymap=rs#resharper_csharp_insert_final_newline |
| # resharper_csharp_insert_final_newline = true |