# EditorConfig is awesome:http://EditorConfig.org # top-most EditorConfig file root = true #======================================================================================= # Generic #======================================================================================= # Don't use tabs for indentation [*] indent_style = space # (Please don't specify an indent_size here; that has too many unintended consequences.) #======================================================================================= # Xml files #======================================================================================= [*.{xml,xaml})] indent_size = 2 #--------------------------------------------------------------------------------------- # ReSharper specific #--------------------------------------------------------------------------------------- indent_style = space indent_size = 2 blank_line_after_pi = false #======================================================================================= # Code files #======================================================================================= [*.{cs,csx,vb,vbx}] indent_size = 4 insert_final_newline = true charset = utf-8-bom #======================================================================================= # Psl files #======================================================================================= [*.ps1] indent_size = 2 #======================================================================================= # 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 #======================================================================================= # JSON files #======================================================================================= [*.json] indent_size = 2 #======================================================================================= # Groovy files #======================================================================================= [*.groovy] indent_size = 2 #======================================================================================= # .NET (C# / VB) code style settings #======================================================================================= # Dotnet code style settings: [*.{cs,vb}] #--------------------------------------------------------------------------------------- # Sort using and Import directives with System.* appearing first #--------------------------------------------------------------------------------------- dotnet_sort_system_directives_first = true dotnet_style_require_accessibility_modifiers = always:warning #--------------------------------------------------------------------------------------- # Put a blank line between System.* and Microsoft.* #--------------------------------------------------------------------------------------- dotnet_separate_import_directive_groups = false #--------------------------------------------------------------------------------------- # Usings inside the namespace #--------------------------------------------------------------------------------------- csharp_using_directive_placement = inside_namespace:error #--------------------------------------------------------------------------------------- # Avoid "this." and "Me." if not necessary #--------------------------------------------------------------------------------------- dotnet_style_qualification_for_field = false:warning dotnet_style_qualification_for_property = false:warning dotnet_style_qualification_for_method = false:warning dotnet_style_qualification_for_event = false:warning #--------------------------------------------------------------------------------------- # Use language keywords instead of framework type names for type references #--------------------------------------------------------------------------------------- dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion dotnet_style_predefined_type_for_member_access = true:suggestion #--------------------------------------------------------------------------------------- # Prefer read-only on fields #--------------------------------------------------------------------------------------- dotnet_style_readonly_field = true:error #--------------------------------------------------------------------------------------- # Naming Rules #--------------------------------------------------------------------------------------- dotnet_naming_rule.interfaces_must_be_pascal_cased_and_prefixed_with_I.symbols = interface_symbols dotnet_naming_rule.interfaces_must_be_pascal_cased_and_prefixed_with_I.style = pascal_case_and_prefix_with_I_style dotnet_naming_rule.interfaces_must_be_pascal_cased_and_prefixed_with_I.severity = error dotnet_naming_rule.externally_visible_members_must_be_pascal_cased.symbols = externally_visible_symbols dotnet_naming_rule.externally_visible_members_must_be_pascal_cased.style = pascal_case_style dotnet_naming_rule.externally_visible_members_must_be_pascal_cased.severity = error dotnet_naming_rule.parameters_must_be_camel_cased.symbols = parameter_symbols dotnet_naming_rule.parameters_must_be_camel_cased.style = camel_case_style dotnet_naming_rule.parameters_must_be_camel_cased.severity = error dotnet_naming_rule.constants_must_be_pascal_cased.symbols = constant_symbols dotnet_naming_rule.constants_must_be_pascal_cased.style = pascal_case_style dotnet_naming_rule.constants_must_be_pascal_cased.severity = error dotnet_naming_rule.private_static_fields_must_be_camel_cased_and_prefixed_with_s_underscore.symbols = private_static_field_symbols dotnet_naming_rule.private_static_fields_must_be_camel_cased_and_prefixed_with_s_underscore.style = pascal_case_style dotnet_naming_rule.private_static_fields_must_be_camel_cased_and_prefixed_with_s_underscore.severity = error dotnet_naming_rule.protected_instance_fields_must_be_camel_cased_and_prefixed_with_underscore.symbols = protected_field_symbols dotnet_naming_rule.protected_instance_fields_must_be_camel_cased_and_prefixed_with_underscore.style = camel_case_and_prefix_with_underscore_style dotnet_naming_rule.protected_instance_fields_must_be_camel_cased_and_prefixed_with_underscore.severity = error dotnet_naming_rule.private_instance_fields_must_be_camel_cased_and_prefixed_with_underscore.symbols = private_field_symbols dotnet_naming_rule.private_instance_fields_must_be_camel_cased_and_prefixed_with_underscore.style = camel_case_and_prefix_with_underscore_style dotnet_naming_rule.private_instance_fields_must_be_camel_cased_and_prefixed_with_underscore.severity = error #--------------------------------------------------------------------------------------- # Symbols #--------------------------------------------------------------------------------------- dotnet_naming_symbols.externally_visible_symbols.applicable_kinds = class,struct,interface,enum,property,method,field,event,delegate dotnet_naming_symbols.externally_visible_symbols.applicable_accessibilities = public,internal,friend,protected,protected_internal,protected_friend,private_protected dotnet_naming_symbols.interface_symbols.applicable_kinds = interface dotnet_naming_symbols.interface_symbols.applicable_accessibilities = * dotnet_naming_symbols.parameter_symbols.applicable_kinds = parameter dotnet_naming_symbols.parameter_symbols.applicable_accessibilities = * dotnet_naming_symbols.constant_symbols.applicable_kinds = field dotnet_naming_symbols.constant_symbols.required_modifiers = const dotnet_naming_symbols.constant_symbols.applicable_accessibilities = * dotnet_naming_symbols.private_static_field_symbols.applicable_kinds = field dotnet_naming_symbols.private_static_field_symbols.required_modifiers = static,shared dotnet_naming_symbols.private_static_field_symbols.applicable_accessibilities = private dotnet_naming_symbols.private_field_symbols.applicable_kinds = field dotnet_naming_symbols.private_field_symbols.applicable_accessibilities = private dotnet_naming_symbols.protected_field_symbols.applicable_kinds = field dotnet_naming_symbols.protected_field_symbols.applicable_accessibilities = protected #--------------------------------------------------------------------------------------- # Styles #--------------------------------------------------------------------------------------- dotnet_naming_style.camel_case_style.capitalization = camel_case dotnet_naming_style.pascal_case_style.capitalization = pascal_case dotnet_naming_style.camel_case_and_prefix_with_s_underscore_style.required_prefix = s_ dotnet_naming_style.camel_case_and_prefix_with_s_underscore_style.capitalization = camel_case dotnet_naming_style.camel_case_and_prefix_with_underscore_style.required_prefix = _ dotnet_naming_style.camel_case_and_prefix_with_underscore_style.capitalization = camel_case dotnet_naming_style.pascal_case_and_prefix_with_I_style.required_prefix = I dotnet_naming_style.pascal_case_and_prefix_with_I_style.capitalization = pascal_case #======================================================================================= # CSharp code style settings #======================================================================================= [*.cs] # Prefer "var" only when the type is apparent csharp_style_var_for_built_in_types = true:suggestion csharp_style_var_when_type_is_apparent = true:suggestion csharp_style_var_elsewhere = true:suggestion #--------------------------------------------------------------------------------------- # Prefer method-like constructs to have a block body #--------------------------------------------------------------------------------------- csharp_style_expression_bodied_methods = false:none csharp_style_expression_bodied_constructors = false:none csharp_style_expression_bodied_operators = false:none #--------------------------------------------------------------------------------------- # Prefer property-like constructs to have an expression-body #--------------------------------------------------------------------------------------- csharp_style_expression_bodied_properties = true:none csharp_style_expression_bodied_indexers = true:none csharp_style_expression_bodied_accessors = true:none #--------------------------------------------------------------------------------------- # Suggest more modern language features when available #--------------------------------------------------------------------------------------- csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion csharp_style_pattern_matching_over_as_with_null_check = true:suggestion csharp_style_inlined_variable_declaration = true:suggestion csharp_style_throw_expression = true:suggestion csharp_style_conditional_delegate_call = true:suggestion csharp_style_deconstructed_variable_declaration = true:suggestion dotnet_style_object_initializer = true:suggestion dotnet_style_collection_initializer = true:suggestion dotnet_style_coalesce_expression = true:suggestion dotnet_style_null_propagation = true:suggestion dotnet_style_explicit_tuple_names = true:suggestion dotnet_style_prefer_inferred_tuple_names = true:suggestion dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion dotnet_style_prefer_conditional_expression_over_return = false dotnet_style_prefer_conditional_expression_over_assignment = false dotnet_style_prefer_auto_properties = false dotnet_style_require_accessibility_modifiers = for_non_interface_members #--------------------------------------------------------------------------------------- # Newline settings #--------------------------------------------------------------------------------------- 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 = true csharp_new_line_before_members_in_anonymous_types = true csharp_new_line_between_query_expression_clauses = true #--------------------------------------------------------------------------------------- # Identation options #--------------------------------------------------------------------------------------- csharp_indent_case_contents = true csharp_indent_case_contents_when_block = true csharp_indent_switch_labels = true csharp_indent_labels = no_change csharp_indent_block_contents = true csharp_indent_braces = false #--------------------------------------------------------------------------------------- # Spacing options #--------------------------------------------------------------------------------------- csharp_space_after_cast = false csharp_space_after_keywords_in_control_flow_statements = true csharp_space_between_method_call_empty_parameter_list_parentheses = false csharp_space_between_method_call_parameter_list_parentheses = false csharp_space_between_method_call_name_and_opening_parenthesis = false csharp_space_between_method_declaration_parameter_list_parentheses = false csharp_space_between_method_declaration_empty_parameter_list_parentheses = false csharp_space_between_method_declaration_parameter_list_parentheses = false csharp_space_between_method_declaration_name_and_open_parenthesis = false csharp_space_between_parentheses = false csharp_space_between_square_brackets = false csharp_space_between_empty_square_brackets = false csharp_space_before_open_square_brackets = false csharp_space_around_declaration_statements = false csharp_space_around_binary_operators = before_and_after csharp_space_after_cast = false csharp_space_before_semicolon_in_for_statement = false csharp_space_before_dot = false csharp_space_after_dot = false csharp_space_before_comma = false csharp_space_after_comma = true csharp_space_before_colon_in_inheritance_clause = true csharp_space_after_colon_in_inheritance_clause = true csharp_space_after_semicolon_in_for_statement = true #--------------------------------------------------------------------------------------- # Wrapping #--------------------------------------------------------------------------------------- csharp_preserve_single_line_statements = true csharp_preserve_single_line_blocks = true #--------------------------------------------------------------------------------------- # ReSharper specific #--------------------------------------------------------------------------------------- add_imports_to_deepest_scope = true blank_lines_inside_region = 0 csharp_blank_lines_inside_region = 0 csharp_braces_for_ifelse = required csharp_braces_for_for = required csharp_braces_for_foreach = required csharp_braces_for_while = required csharp_braces_for_dowhile = required csharp_keep_existing_declaration_parens_arrangement = true csharp_keep_user_linebreaks = true csharp_max_line_length = 1000 xml_indent_style = space xml_indent_size = 2 xmldoc_indent_style = space xmldoc_indent_size = 2 #======================================================================================= # Test projects #======================================================================================= [src/*Tests/**/*.cs] # We allow usage of "var" inside tests as it reduces churn as we remove/rename types csharp_style_var_for_built_in_types = true:none csharp_style_var_elsewhere = true:none #======================================================================================= # Ignore designer files #======================================================================================= [src/**/*.designer.cs,src/**/GlobalSuppressions.cs,src/**/MethodTimeLogger.cs,src/**/SolutionAssemblyInfo.cs] charset = none end_of_line = none insert_final_newline = none trim_trailing_whitespace = none indent_style = none indent_size = none