Created
February 11, 2022 18:48
-
-
Save glektarssza/f368bcc453898fc89c4adff09bc61cf3 to your computer and use it in GitHub Desktop.
C# EditorConfig
This file contains hidden or 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
########################################## | |
# Common Settings | |
########################################## | |
# This file is the top-most EditorConfig file | |
root = true | |
# All Files # | |
[*] | |
indent_style = space | |
indent_size = 4 | |
tab_width = 4 | |
end_of_line = lf | |
charset = utf-8 | |
trim_trailing_whitespace = true | |
insert_final_newline = true | |
########################################## | |
# File Extension Settings | |
########################################## | |
# Visual Studio Solution Files # | |
[*.sln] | |
indent_style = tab | |
# Batch Files # | |
[*.{cmd,bat}] | |
end_of_line = crlf | |
[*.{yml,yaml}] | |
indent_size = 2 | |
# Batch Files # | |
[*.{cmd,bat}] | |
end_of_line = crlf | |
########################################## | |
# Default .NET Code Style Severities | |
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/configuration-options#scope | |
########################################## | |
[*.{cs,csx,cake,vb,vbx}] | |
# Default Severity for all .NET Code Style rules below | |
dotnet_analyzer_diagnostic.severity = warning | |
########################################## | |
# Language Rules | |
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/language-rules | |
########################################## | |
# .NET Style Rules | |
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/language-rules#net-style-rules | |
[*.{cs,csx,cake,vb,vbx}] | |
# "this." and "Me." qualifiers | |
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 | |
# Language keywords instead of framework type names for type references | |
dotnet_style_predefined_type_for_locals_parameters_members = true:warning | |
dotnet_style_predefined_type_for_member_access = true:warning | |
# Modifier preferences | |
dotnet_style_require_accessibility_modifiers = always:warning | |
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:warning | |
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:warning | |
dotnet_style_readonly_field = true:warning | |
# Parentheses preferences | |
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:warning | |
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:warning | |
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:warning | |
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:warning | |
# Expression-level preferences | |
dotnet_style_object_initializer = true:warning | |
dotnet_style_collection_initializer = true:warning | |
dotnet_style_explicit_tuple_names = true:warning | |
dotnet_style_prefer_inferred_tuple_names = true:warning | |
dotnet_style_prefer_inferred_anonymous_type_member_names = true:warning | |
dotnet_style_prefer_auto_properties = true:warning | |
dotnet_style_prefer_conditional_expression_over_assignment = false:suggestion | |
dotnet_diagnostic.IDE0045.severity = suggestion | |
dotnet_style_prefer_conditional_expression_over_return = false:suggestion | |
dotnet_diagnostic.IDE0046.severity = suggestion | |
dotnet_style_prefer_compound_assignment = true:warning | |
dotnet_style_prefer_simplified_interpolation = true:warning | |
dotnet_style_prefer_simplified_boolean_expressions = true:warning | |
# Null-checking preferences | |
dotnet_style_coalesce_expression = true:warning | |
dotnet_style_null_propagation = true:warning | |
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning | |
# File header preferences | |
# file_header_template = <copyright file="{fileName}" company="PROJECT-AUTHOR">\n© PROJECT-AUTHOR\n</copyright> | |
# If you use StyleCop, you'll need to disable SA1636: File header copyright text should match. | |
# dotnet_diagnostic.SA1636.severity = none | |
# Undocumented | |
dotnet_style_operator_placement_when_wrapping = end_of_line:warning | |
csharp_style_prefer_null_check_over_type_check = true:warning | |
dotnet_style_namespace_match_folder = true:suggestion | |
dotnet_diagnostic.IDE0130.severity = suggestion | |
# C# Style Rules | |
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/language-rules#c-style-rules | |
[*.{cs,csx,cake}] | |
# 'var' preferences | |
csharp_style_var_for_built_in_types = true:warning | |
csharp_style_var_when_type_is_apparent = true:warning | |
csharp_style_var_elsewhere = true:warning | |
# Expression-bodied members | |
csharp_style_expression_bodied_methods = true:warning | |
csharp_style_expression_bodied_constructors = true:warning | |
csharp_style_expression_bodied_operators = true:warning | |
csharp_style_expression_bodied_properties = true:warning | |
csharp_style_expression_bodied_indexers = true:warning | |
csharp_style_expression_bodied_accessors = true:warning | |
csharp_style_expression_bodied_lambdas = true:warning | |
csharp_style_expression_bodied_local_functions = true:warning | |
# Pattern matching preferences | |
csharp_style_pattern_matching_over_is_with_cast_check = true:warning | |
csharp_style_pattern_matching_over_as_with_null_check = true:warning | |
csharp_style_prefer_switch_expression = true:warning | |
csharp_style_prefer_pattern_matching = true:warning | |
csharp_style_prefer_not_pattern = true:warning | |
# Expression-level preferences | |
csharp_style_inlined_variable_declaration = true:warning | |
csharp_prefer_simple_default_expression = true:warning | |
csharp_style_pattern_local_over_anonymous_function = true:warning | |
csharp_style_deconstructed_variable_declaration = true:warning | |
csharp_style_prefer_index_operator = true:warning | |
csharp_style_prefer_range_operator = true:warning | |
csharp_style_implicit_object_creation_when_type_is_apparent = true:warning | |
# "Null" checking preferences | |
csharp_style_throw_expression = true:warning | |
csharp_style_conditional_delegate_call = true:warning | |
# Code block preferences | |
csharp_prefer_braces = true:warning | |
csharp_prefer_simple_using_statement = true:suggestion | |
dotnet_diagnostic.IDE0063.severity = suggestion | |
# 'using' directive preferences | |
csharp_using_directive_placement = inside_namespace:warning | |
# Modifier preferences | |
csharp_prefer_static_local_function = true:warning | |
# Undocumented | |
csharp_style_namespace_declarations = file_scoped:warning | |
########################################## | |
# Unnecessary Code Rules | |
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/unnecessary-code-rules | |
########################################## | |
# .NET Unnecessary code rules | |
[*.{cs,csx,cake,vb,vbx}] | |
dotnet_code_quality_unused_parameters = all:warning | |
dotnet_remove_unnecessary_suppression_exclusions = none:warning | |
# C# Unnecessary code rules | |
[*.{cs,csx,cake}] | |
csharp_style_unused_value_expression_statement_preference = discard_variable:suggestion | |
dotnet_diagnostic.IDE0058.severity = suggestion | |
csharp_style_unused_value_assignment_preference = discard_variable:suggestion | |
dotnet_diagnostic.IDE0059.severity = suggestion | |
########################################## | |
# Formatting Rules | |
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/formatting-rules | |
########################################## | |
# .NET formatting rules | |
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/formatting-rules#net-formatting-rules | |
[*.{cs,csx,cake,vb,vbx}] | |
# Organize using directives | |
dotnet_sort_system_directives_first = true | |
dotnet_separate_import_directive_groups = false | |
# C# formatting rules | |
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/formatting-rules#c-formatting-rules | |
[*.{cs,csx,cake}] | |
# Newline options | |
# https://docs.microsoft.com/visualstudio/ide/editorconfig-formatting-conventions#new-line-options | |
csharp_new_line_before_open_brace = none | |
csharp_new_line_before_else = false | |
csharp_new_line_before_catch = false | |
csharp_new_line_before_finally = false | |
csharp_new_line_before_members_in_object_initializers = false | |
csharp_new_line_before_members_in_anonymous_types = false | |
csharp_new_line_between_query_expression_clauses = false | |
# Indentation options | |
# https://docs.microsoft.com/visualstudio/ide/editorconfig-formatting-conventions#indentation-options | |
csharp_indent_case_contents = true | |
csharp_indent_switch_labels = true | |
csharp_indent_labels = no_change | |
csharp_indent_block_contents = true | |
csharp_indent_braces = false | |
csharp_indent_case_contents_when_block = false | |
# Spacing options | |
# https://docs.microsoft.com/visualstudio/ide/editorconfig-formatting-conventions#spacing-options | |
csharp_space_after_cast = false | |
csharp_space_after_keywords_in_control_flow_statements = true | |
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_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_call_parameter_list_parentheses = false | |
csharp_space_between_method_call_empty_parameter_list_parentheses = false | |
csharp_space_between_method_call_name_and_opening_parenthesis = false | |
csharp_space_after_comma = true | |
csharp_space_before_comma = false | |
csharp_space_after_dot = false | |
csharp_space_before_dot = false | |
csharp_space_after_semicolon_in_for_statement = true | |
csharp_space_before_semicolon_in_for_statement = false | |
csharp_space_around_declaration_statements = false | |
csharp_space_before_open_square_brackets = false | |
csharp_space_between_empty_square_brackets = false | |
csharp_space_between_square_brackets = false | |
# Wrap options | |
# https://docs.microsoft.com/visualstudio/ide/editorconfig-formatting-conventions#wrap-options | |
csharp_preserve_single_line_statements = false | |
csharp_preserve_single_line_blocks = true | |
########################################## | |
# .NET Naming Rules | |
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/naming-rules | |
########################################## | |
[*.{cs,csx,cake,vb,vbx}] | |
########################################## | |
# Styles | |
########################################## | |
# camel_case_style - Define the camelCase style | |
dotnet_naming_style.camel_case_style.capitalization = camel_case | |
# pascal_case_style - Define the PascalCase style | |
dotnet_naming_style.pascal_case_style.capitalization = pascal_case | |
# first_upper_style - The first character must start with an upper-case character | |
dotnet_naming_style.first_upper_style.capitalization = first_word_upper | |
# prefix_interface_with_i_style - Interfaces must be PascalCase and the first character of an interface must be an 'I' | |
dotnet_naming_style.prefix_interface_with_i_style.capitalization = pascal_case | |
dotnet_naming_style.prefix_interface_with_i_style.required_prefix = I | |
# prefix_type_parameters_with_t_style - Generic Type Parameters must be PascalCase and the first character must be a 'T' | |
dotnet_naming_style.prefix_type_parameters_with_t_style.capitalization = pascal_case | |
dotnet_naming_style.prefix_type_parameters_with_t_style.required_prefix = T | |
# prefix_static_fields_with_s_style - Static fields must be camelCase and the first characters must be 's_' | |
dotnet_naming_style.prefix_static_fields_with_s_style.capitalization = camel_case | |
dotnet_naming_style.prefix_static_fields_with_s_style.required_prefix = s_ | |
# disallowed_style - Anything that has this style applied is marked as disallowed | |
dotnet_naming_style.disallowed_style.capitalization = pascal_case | |
dotnet_naming_style.disallowed_style.required_prefix = ____RULE_VIOLATION____ | |
dotnet_naming_style.disallowed_style.required_suffix = ____RULE_VIOLATION____ | |
# internal_error_style - This style should never occur... if it does, it indicates a bug in file or in the parser using the file | |
dotnet_naming_style.internal_error_style.capitalization = pascal_case | |
dotnet_naming_style.internal_error_style.required_prefix = ____INTERNAL_ERROR____ | |
dotnet_naming_style.internal_error_style.required_suffix = ____INTERNAL_ERROR____ | |
########################################## | |
# .NET Design Guideline Field Naming Rules | |
# Naming rules for fields follow the .NET Framework design guidelines | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/index | |
########################################## | |
# All constant fields must be PascalCase | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/field | |
dotnet_naming_symbols.constant_fields_group.applicable_accessibilities = public, protected, protected_internal, private | |
dotnet_naming_symbols.constant_fields_group.required_modifiers = const | |
dotnet_naming_symbols.constant_fields_group.applicable_kinds = field | |
dotnet_naming_rule.constant_fields_must_be_pascal_case_rule.symbols = constant_fields_group | |
dotnet_naming_rule.constant_fields_must_be_pascal_case_rule.style = pascal_case_style | |
dotnet_naming_rule.constant_fields_must_be_pascal_case_rule.severity = warning | |
# All static fields must be s_camelCase | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/field | |
dotnet_naming_symbols.static_fields_group.applicable_accessibilities = public, protected, protected_internal, private | |
dotnet_naming_symbols.static_fields_group.required_modifiers = static | |
dotnet_naming_symbols.static_fields_group.applicable_kinds = field | |
dotnet_naming_rule.static_fields_must_be_pascal_case_rule.symbols = static_fields_group | |
dotnet_naming_rule.static_fields_must_be_pascal_case_rule.style = prefix_static_fields_with_s_style | |
dotnet_naming_rule.static_fields_must_be_pascal_case_rule.severity = warning | |
# No other public/protected/protected_internal fields are allowed | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/field | |
dotnet_naming_symbols.other_public_protected_fields_group.applicable_accessibilities = public, protected, protected_internal | |
dotnet_naming_symbols.other_public_protected_fields_group.applicable_kinds = field | |
dotnet_naming_rule.other_public_protected_fields_disallowed_rule.symbols = other_public_protected_fields_group | |
dotnet_naming_rule.other_public_protected_fields_disallowed_rule.style = disallowed_style | |
dotnet_naming_rule.other_public_protected_fields_disallowed_rule.severity = error | |
########################################## | |
# StyleCop Field Naming Rules | |
# Naming rules for fields follow the StyleCop analyzers | |
# This does not override any rules using disallowed_style above | |
# https://github.com/DotNetAnalyzers/StyleCopAnalyzers | |
########################################## | |
# All constant fields must be PascalCase | |
# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1303.md | |
dotnet_naming_symbols.stylecop_constant_fields_group.applicable_accessibilities = public, internal, protected_internal, protected, private_protected, private | |
dotnet_naming_symbols.stylecop_constant_fields_group.required_modifiers = const | |
dotnet_naming_symbols.stylecop_constant_fields_group.applicable_kinds = field | |
dotnet_naming_rule.stylecop_constant_fields_must_be_pascal_case_rule.symbols = stylecop_constant_fields_group | |
dotnet_naming_rule.stylecop_constant_fields_must_be_pascal_case_rule.style = pascal_case_style | |
dotnet_naming_rule.stylecop_constant_fields_must_be_pascal_case_rule.severity = warning | |
# All static fields must be s_camelCase | |
# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1311.md | |
dotnet_naming_symbols.stylecop_static_readonly_fields_group.applicable_accessibilities = public, internal, protected_internal, protected, private_protected, private | |
dotnet_naming_symbols.stylecop_static_readonly_fields_group.required_modifiers = static | |
dotnet_naming_symbols.stylecop_static_readonly_fields_group.applicable_kinds = field | |
dotnet_naming_rule.stylecop_static_readonly_fields_must_be_pascal_case_rule.symbols = stylecop_static_readonly_fields_group | |
dotnet_naming_rule.stylecop_static_readonly_fields_must_be_pascal_case_rule.style = prefix_static_fields_with_s_style | |
dotnet_naming_rule.stylecop_static_readonly_fields_must_be_pascal_case_rule.severity = warning | |
# No non-private instance fields are allowed | |
# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1401.md | |
dotnet_naming_symbols.stylecop_fields_must_be_private_group.applicable_accessibilities = public, internal, protected_internal, protected, private_protected | |
dotnet_naming_symbols.stylecop_fields_must_be_private_group.applicable_kinds = field | |
dotnet_naming_rule.stylecop_instance_fields_must_be_private_rule.symbols = stylecop_fields_must_be_private_group | |
dotnet_naming_rule.stylecop_instance_fields_must_be_private_rule.style = disallowed_style | |
dotnet_naming_rule.stylecop_instance_fields_must_be_private_rule.severity = error | |
# Private fields must be camelCase | |
# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1306.md | |
dotnet_naming_symbols.stylecop_private_fields_group.applicable_accessibilities = private | |
dotnet_naming_symbols.stylecop_private_fields_group.applicable_kinds = field | |
dotnet_naming_rule.stylecop_private_fields_must_be_camel_case_rule.symbols = stylecop_private_fields_group | |
dotnet_naming_rule.stylecop_private_fields_must_be_camel_case_rule.style = camel_case_style | |
dotnet_naming_rule.stylecop_private_fields_must_be_camel_case_rule.severity = warning | |
# Local variables must be camelCase | |
# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1312.md | |
dotnet_naming_symbols.stylecop_local_fields_group.applicable_accessibilities = local | |
dotnet_naming_symbols.stylecop_local_fields_group.applicable_kinds = local | |
dotnet_naming_rule.stylecop_local_fields_must_be_camel_case_rule.symbols = stylecop_local_fields_group | |
dotnet_naming_rule.stylecop_local_fields_must_be_camel_case_rule.style = camel_case_style | |
dotnet_naming_rule.stylecop_local_fields_must_be_camel_case_rule.severity = silent | |
# This rule should never fire. However, it's included for at least two purposes: | |
# First, it helps to understand, reason about, and root-case certain types of issues, such as bugs in .editorconfig parsers. | |
# Second, it helps to raise immediate awareness if a new field type is added (as occurred recently in C#). | |
dotnet_naming_symbols.sanity_check_uncovered_field_case_group.applicable_accessibilities = * | |
dotnet_naming_symbols.sanity_check_uncovered_field_case_group.applicable_kinds = field | |
dotnet_naming_rule.sanity_check_uncovered_field_case_rule.symbols = sanity_check_uncovered_field_case_group | |
dotnet_naming_rule.sanity_check_uncovered_field_case_rule.style = internal_error_style | |
dotnet_naming_rule.sanity_check_uncovered_field_case_rule.severity = error | |
########################################## | |
# Other Naming Rules | |
########################################## | |
# All of the following must be PascalCase: | |
# - Namespaces | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/names-of-namespaces | |
# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1300.md | |
# - Classes and Enumerations | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces | |
# https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1300.md | |
# - Delegates | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces#names-of-common-types | |
# - Constructors, Properties, Events, Methods | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/names-of-type-members | |
dotnet_naming_symbols.element_group.applicable_kinds = namespace, class, enum, struct, delegate, event, method, property | |
dotnet_naming_rule.element_rule.symbols = element_group | |
dotnet_naming_rule.element_rule.style = pascal_case_style | |
dotnet_naming_rule.element_rule.severity = warning | |
# Interfaces use PascalCase and are prefixed with uppercase 'I' | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces | |
dotnet_naming_symbols.interface_group.applicable_kinds = interface | |
dotnet_naming_rule.interface_rule.symbols = interface_group | |
dotnet_naming_rule.interface_rule.style = prefix_interface_with_i_style | |
dotnet_naming_rule.interface_rule.severity = warning | |
# Generics Type Parameters use PascalCase and are prefixed with uppercase 'T' | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces | |
dotnet_naming_symbols.type_parameter_group.applicable_kinds = type_parameter | |
dotnet_naming_rule.type_parameter_rule.symbols = type_parameter_group | |
dotnet_naming_rule.type_parameter_rule.style = prefix_type_parameters_with_t_style | |
dotnet_naming_rule.type_parameter_rule.severity = warning | |
# Function parameters use camelCase | |
# https://docs.microsoft.com/dotnet/standard/design-guidelines/naming-parameters | |
dotnet_naming_symbols.parameters_group.applicable_kinds = parameter | |
dotnet_naming_rule.parameters_rule.symbols = parameters_group | |
dotnet_naming_rule.parameters_rule.style = camel_case_style | |
dotnet_naming_rule.parameters_rule.severity = warning |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment