Skip to content
Snippets Groups Projects
.editorconfig 6.46 KiB
Newer Older
  • Learn to ignore specific revisions
  • Michal Černý's avatar
    Michal Černý committed
    # top-most EditorConfig file
    root = true
    
    [*]
    indent_style = space
    
    [*.json]
    indent_size = 2
    
    [*.cs]
    indent_size = 4
    insert_final_newline = true
    max_line_length = 120
    trim_trailing_whitespace = true
    charset = utf-8
    end_of_line = crlf
    
    # Newline settings
    csharp_new_line_before_open_brace = none
    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
    
    # 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_switch_labels = true
    csharp_indent_labels = flush_left
    
    # Prefer "var" everywhere
    csharp_style_var_for_built_in_types = true:suggestion
    csharp_style_var_when_type_is_apparent = true:suggestion
    csharp_style_var_elsewhere = true:suggestion
    
    # 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 = do_not_ignore
    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
    
    # Avoid "this." and "Me." if not necessary
    dotnet_style_qualification_for_field = false:refactoring
    dotnet_style_qualification_for_property = false:refactoring
    dotnet_style_qualification_for_method = false:refactoring
    dotnet_style_qualification_for_event = false:refactoring
    
    # Non-private static fields are PascalCase
    dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.severity = suggestion
    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 = suggestion
    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 = suggestion
    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 and start with s_
    dotnet_naming_rule.static_fields_should_be_camel_case.severity = suggestion
    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 = pascal_case
    dotnet_naming_style.static_field_style.required_prefix = s_
    
    # Instance fields are camelCase and start with _
    dotnet_naming_rule.instance_fields_should_be_camel_case.severity = suggestion
    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 = pascal_case
    dotnet_naming_style.instance_field_style.required_prefix = _
    
    # Locals and parameters are camelCase
    dotnet_naming_rule.locals_should_be_camel_case.severity = suggestion
    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 = suggestion
    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 = suggestion
    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