Last active
July 22, 2022 12:52
-
-
Save ryanbuening/978215831b068e036d0327632f7aacd4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Remove the line below if you want to inherit .editorconfig settings from higher directories | |
root = true | |
# C# files | |
[*.cs] | |
# Indentation and spacing | |
indent_style = tab | |
# New line preferences | |
end_of_line = crlf | |
# Organize usings | |
dotnet_separate_import_directive_groups = false | |
dotnet_sort_system_directives_first = false | |
file_header_template = unset | |
# this. and Me. preferences | |
dotnet_style_qualification_for_event = false : silent | |
dotnet_style_qualification_for_field = false : silent | |
dotnet_style_qualification_for_method = false : silent | |
dotnet_style_qualification_for_property = 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_other_binary_operators = always_for_clarity : silent | |
dotnet_style_parentheses_in_other_operators = never_if_unnecessary : silent | |
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity : silent | |
# Modifier preferences | |
dotnet_style_require_accessibility_modifiers = for_non_interface_members : silent | |
# Expression-level preferences | |
dotnet_style_coalesce_expression = true : suggestion | |
dotnet_style_collection_initializer = true : suggestion | |
dotnet_style_explicit_tuple_names = true : suggestion | |
dotnet_style_null_propagation = true : suggestion | |
dotnet_style_object_initializer = true : suggestion | |
dotnet_style_operator_placement_when_wrapping = beginning_of_line | |
dotnet_style_prefer_auto_properties = true : silent | |
dotnet_style_prefer_compound_assignment = true : suggestion | |
dotnet_style_prefer_conditional_expression_over_assignment = true : silent | |
dotnet_style_prefer_conditional_expression_over_return = true : silent | |
dotnet_style_prefer_inferred_anonymous_type_member_names = true : suggestion | |
dotnet_style_prefer_inferred_tuple_names = true : suggestion | |
dotnet_style_prefer_is_null_check_over_reference_equality_method = true : suggestion | |
dotnet_style_prefer_simplified_boolean_expressions = true : suggestion | |
dotnet_style_prefer_simplified_interpolation = true : suggestion | |
# Field preferences | |
dotnet_style_readonly_field = true : suggestion | |
# Parameter preferences | |
dotnet_code_quality_unused_parameters = all : suggestion | |
# Suppression preferences | |
dotnet_remove_unnecessary_suppression_exclusions = none | |
# var preferences | |
csharp_style_var_elsewhere = false : silent | |
csharp_style_var_for_built_in_types = false : silent | |
csharp_style_var_when_type_is_apparent = false : silent | |
# Expression-bodied members | |
csharp_style_expression_bodied_accessors = true : silent | |
csharp_style_expression_bodied_constructors = false : silent | |
csharp_style_expression_bodied_indexers = true : silent | |
csharp_style_expression_bodied_lambdas = true : silent | |
csharp_style_expression_bodied_local_functions = false : silent | |
csharp_style_expression_bodied_methods = false : silent | |
csharp_style_expression_bodied_operators = false : silent | |
csharp_style_expression_bodied_properties = true : silent | |
# Pattern matching preferences | |
csharp_style_pattern_matching_over_as_with_null_check = true : suggestion | |
csharp_style_pattern_matching_over_is_with_cast_check = true : suggestion | |
csharp_style_prefer_not_pattern = true : suggestion | |
csharp_style_prefer_pattern_matching = true : silent | |
csharp_style_prefer_switch_expression = true : suggestion | |
csharp_style_implicit_object_creation_when_type_is_apparent = true : silent | |
# Null-checking preferences | |
csharp_style_conditional_delegate_call = true : suggestion | |
# Modifier preferences | |
csharp_prefer_static_local_function = true : suggestion | |
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async : silent | |
# Code-block preferences | |
csharp_prefer_braces = true : suggestion | |
csharp_prefer_simple_using_statement = true : suggestion | |
# Expression-level preferences | |
csharp_prefer_simple_default_expression = true : suggestion | |
csharp_style_deconstructed_variable_declaration = true : suggestion | |
csharp_style_inlined_variable_declaration = true : suggestion | |
csharp_style_pattern_local_over_anonymous_function = true : suggestion | |
csharp_style_prefer_index_operator = true : suggestion | |
csharp_style_prefer_range_operator = true : suggestion | |
csharp_style_throw_expression = true : suggestion | |
csharp_style_unused_value_assignment_preference = discard_variable : suggestion | |
csharp_style_unused_value_expression_statement_preference = discard_variable : silent | |
# 'using' directive preferences | |
csharp_using_directive_placement = inside_namespace : silent | |
csharp_style_namespace_declarations = file_scoped:error | |
# New line preferences | |
csharp_new_line_before_catch = true | |
csharp_new_line_before_else = true | |
csharp_new_line_before_finally = true | |
csharp_new_line_before_members_in_anonymous_types = true | |
csharp_new_line_before_members_in_object_initializers = true | |
csharp_new_line_before_open_brace = all | |
csharp_new_line_between_query_expression_clauses = true | |
# Indentation preferences | |
csharp_indent_block_contents = true | |
csharp_indent_braces = false | |
csharp_indent_case_contents = true | |
csharp_indent_case_contents_when_block = true | |
csharp_indent_labels = one_less_than_current | |
csharp_indent_switch_labels = true | |
# Space preferences | |
csharp_space_after_cast = false | |
csharp_space_after_colon_in_inheritance_clause = true | |
csharp_space_after_comma = true | |
csharp_space_after_dot = false | |
csharp_space_after_keywords_in_control_flow_statements = true | |
csharp_space_after_semicolon_in_for_statement = true | |
csharp_space_around_binary_operators = before_and_after | |
csharp_space_around_declaration_statements = false | |
csharp_space_before_colon_in_inheritance_clause = true | |
csharp_space_before_comma = false | |
csharp_space_before_dot = false | |
csharp_space_before_open_square_brackets = false | |
csharp_space_before_semicolon_in_for_statement = false | |
csharp_space_between_empty_square_brackets = false | |
csharp_space_between_method_call_empty_parameter_list_parentheses = false | |
csharp_space_between_method_call_name_and_opening_parenthesis = false | |
csharp_space_between_method_call_parameter_list_parentheses = false | |
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false | |
csharp_space_between_method_declaration_name_and_open_parenthesis = false | |
csharp_space_between_method_declaration_parameter_list_parentheses = false | |
csharp_space_between_parentheses = false | |
csharp_space_between_square_brackets = false | |
# Wrapping preferences | |
csharp_preserve_single_line_blocks = true | |
csharp_preserve_single_line_statements = true | |
# Interfaces should begin with an I | |
dotnet_naming_rule.interface_should_be_begins_with_i.severity = error | |
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface | |
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i | |
# Non-private static fields are PascalCase | |
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.severity = error | |
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.symbols = non_private_static_fields | |
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.style = non_private_static_field_style | |
dotnet_naming_symbols.non_private_static_fields.applicable_kinds = field | |
dotnet_naming_symbols.non_private_static_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected | |
dotnet_naming_symbols.non_private_static_fields.required_modifiers = static | |
dotnet_naming_style.non_private_static_field_style.capitalization = pascal_case | |
# Non-private readonly fields are PascalCase | |
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.severity = error | |
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.symbols = non_private_readonly_fields | |
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.style = non_private_readonly_field_style | |
dotnet_naming_symbols.non_private_readonly_fields.applicable_kinds = field | |
dotnet_naming_symbols.non_private_readonly_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected | |
dotnet_naming_symbols.non_private_readonly_fields.required_modifiers = readonly | |
dotnet_naming_style.non_private_readonly_field_style.capitalization = pascal_case | |
# Constants are PascalCase | |
dotnet_naming_rule.constants_should_be_pascal_case.severity = error | |
dotnet_naming_rule.constants_should_be_pascal_case.symbols = constants | |
dotnet_naming_rule.constants_should_be_pascal_case.style = constant_style | |
dotnet_naming_symbols.constants.applicable_kinds = field, local | |
dotnet_naming_symbols.constants.required_modifiers = const | |
dotnet_naming_style.constant_style.capitalization = pascal_case | |
# Static fields are camelCase | |
dotnet_naming_rule.static_fields_should_be_camel_case.severity = error | |
dotnet_naming_rule.static_fields_should_be_camel_case.symbols = static_fields | |
dotnet_naming_rule.static_fields_should_be_camel_case.style = static_field_style | |
dotnet_naming_symbols.static_fields.applicable_kinds = field | |
dotnet_naming_symbols.static_fields.required_modifiers = static | |
dotnet_naming_style.static_field_style.capitalization = camel_case | |
# Instance fields are camelCase and start with _ | |
dotnet_naming_rule.instance_fields_should_be_camel_case.severity = error | |
dotnet_naming_rule.instance_fields_should_be_camel_case.symbols = instance_fields | |
dotnet_naming_rule.instance_fields_should_be_camel_case.style = instance_field_style | |
dotnet_naming_symbols.instance_fields.applicable_kinds = field | |
dotnet_naming_style.instance_field_style.capitalization = camel_case | |
dotnet_naming_style.instance_field_style.required_prefix = _ | |
# Locals and parameters are camelCase | |
dotnet_naming_rule.locals_should_be_camel_case.severity = error | |
dotnet_naming_rule.locals_should_be_camel_case.symbols = locals_and_parameters | |
dotnet_naming_rule.locals_should_be_camel_case.style = camel_case_style | |
dotnet_naming_symbols.locals_and_parameters.applicable_kinds = parameter, local | |
dotnet_naming_style.camel_case_style.capitalization = camel_case | |
# Local functions are PascalCase | |
dotnet_naming_rule.local_functions_should_be_pascal_case.severity = error | |
dotnet_naming_rule.local_functions_should_be_pascal_case.symbols = local_functions | |
dotnet_naming_rule.local_functions_should_be_pascal_case.style = local_function_style | |
dotnet_naming_symbols.local_functions.applicable_kinds = local_function | |
dotnet_naming_style.local_function_style.capitalization = pascal_case | |
# By default, name items with PascalCase | |
dotnet_naming_rule.members_should_be_pascal_case.severity = error | |
dotnet_naming_rule.members_should_be_pascal_case.symbols = all_members | |
dotnet_naming_rule.members_should_be_pascal_case.style = pascal_case_style | |
dotnet_naming_symbols.all_members.applicable_kinds = * | |
dotnet_naming_style.pascal_case_style.capitalization = pascal_case | |
#### Code Analysis rules #### | |
# Add braces - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0011 | |
dotnet_diagnostic.IDE0011.severity = error | |
# Remove unnecessary cast - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0004 | |
dotnet_diagnostic.IDE0004.severity = error | |
# Remove unnecessary import - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0011 | |
dotnet_diagnostic.IDE0005.severity = error | |
# Add accessibility modifiers - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0040 | |
dotnet_diagnostic.IDE0040.severity = error | |
# Use is null check - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0041 | |
dotnet_diagnostic.IDE0041.severity = error | |
# Remove unnecessary parentheses/Add parentheses for clarity - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0047-ide0048 | |
dotnet_diagnostic.IDE0047.severity = error | |
dotnet_diagnostic.IDE0048.severity = error | |
# Use language keywords instead of framework type names - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0049 | |
dotnet_diagnostic.IDE0049.severity = error | |
# Remove unused private member - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0051 | |
dotnet_diagnostic.IDE0051.severity = error | |
# Remove unread private member - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0052 | |
dotnet_diagnostic.IDE0052.severity = error | |
# Fix formatting - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/formatting-rules | |
dotnet_diagnostic.IDE0055.severity = error | |
# Remove unnecessary value assignment - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0059 | |
dotnet_diagnostic.IDE0059.severity = error | |
# Remove unused parameter - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0060 | |
dotnet_diagnostic.IDE0060.severity = error | |
# Use simple 'using' statement - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0063 | |
dotnet_diagnostic.IDE0063.severity = error | |
# Simplify interpolation - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0071 | |
dotnet_diagnostic.IDE0071.severity = error | |
# Remove unnecessary suppression - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0079 | |
dotnet_diagnostic.IDE0079.severity = error | |
# Simplify LINQ expression - https://docs.microsoft.com/en-us/visualstudio/ide/reference/simplify-linq-expression?view=vs-2022 | |
dotnet_diagnostic.IDE0120.severity = error | |
# Sync namespace and folder name - https://docs.microsoft.com/en-us/visualstudio/ide/reference/sync-namespace-and-folder-name?view=vs-2022 | |
dotnet_diagnostic.IDE0130.severity = error | |
# Do not declare visible instance fields - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1051 | |
dotnet_diagnostic.CA1051.severity = error | |
# Identifiers should not match keywords - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1716 | |
#dotnet_diagnostic.CA1716.severity = error | |
# Non-constant fields should not be visible - https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2211 | |
dotnet_diagnostic.CA2211.severity = error | |
#### Additional rules #### | |
# AsyncFixer03: Fire-and-forget async-void methods and delegates. | |
dotnet_diagnostic.AsyncFixer03.severity = suggestion | |
# AsyncFixer05: Downcasting from a nested task to an outer task. | |
dotnet_diagnostic.AsyncFixer05.severity = suggestion |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment