Last active
March 24, 2019 15:09
-
-
Save wcoder/0153d1f91d9c9f2a986653bf718ea50e to your computer and use it in GitHub Desktop.
My EditorConfig file for Xamarin development
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
# EditorConfig is awesome: http://EditorConfig.org | |
# Based on: | |
# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference | |
# https://github.com/dotnet/roslyn/blob/master/.editorconfig | |
# top-most EditorConfig file | |
root = true | |
# Baseline | |
# Don't use tabs for indentation. | |
[*] | |
charset = utf-8 | |
indent_style = space | |
trim_trailing_whitespace = true | |
max_line_length = 130 | |
# Code files | |
[*.{cs,csx,vb,vbx}] | |
indent_size = 4 | |
insert_final_newline = true | |
charset = utf-8-bom | |
# MSBuild | |
[*.{csproj,proj,projitems,shproj,fsproj,target,props}] | |
indent_size = 2 | |
# XML config files | |
[*.{config,nuspec,resx}] | |
indent_size = 2 | |
# XML Android files | |
[*.{axml,xml}] | |
indent_size = 2 | |
# XAML files | |
[*.{xaml}] | |
indent_size = 4 | |
# JSON files | |
[*.json] | |
indent_size = 2 | |
# F# files | |
[*.{fs, fsx, fsi}] | |
indent_size = 4 | |
# Dotnet code style settings: | |
[*.{cs,vb}] | |
# Sort using and Import directives with System.* appearing first | |
dotnet_sort_system_directives_first = true | |
# Avoid "this." and "Me." if not necessary | |
dotnet_style_qualification_for_field = false:suggestion | |
dotnet_style_qualification_for_property = false:suggestion | |
dotnet_style_qualification_for_method = false:suggestion | |
dotnet_style_qualification_for_event = false:suggestion | |
# 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 | |
# Suggest more modern language features when available | |
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 | |
# CSharp code style settings: | |
[*.cs] | |
# Spacing options | |
csharp_space_after_cast = true | |
csharp_space_between_method_declaration_parameter_list_parentheses = false | |
csharp_space_between_method_call_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 | |
# spaces before parens | |
csharp_space_between_method_declaration_name_and_open_parenthesis = false | |
csharp_space_between_method_call_name_and_opening_parenthesis = false | |
csharp_space_after_keywords_in_control_flow_statements = true | |
# 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 | |
# Switch indentation | |
csharp_indent_switch_labels = true | |
csharp_indent_case_contents = true | |
# Prefer "var" everywhere it's apparent | |
csharp_style_var_for_built_in_types = true:none | |
csharp_style_var_when_type_is_apparent = true:suggestion | |
csharp_style_var_elsewhere = true:none | |
# 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 | |
# Blocks are allowed | |
csharp_prefer_braces = true:none | |
# 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 | |
# 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 = camel_case | |
dotnet_naming_style.instance_field_style.required_prefix = _ | |
# Avoid redundant accessibility modifiers when they're default (omit_if_default:suggestion) | |
dotnet_style_require_accessibility_modifiers = always | |
dotnet_style_readonly_field = true:warning | |
# Other | |
dotnet_style_prefer_inferred_tuple_names = true:suggestion | |
dotnet_style_prefer_auto_properties = true:suggestion | |
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion | |
dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion | |
csharp_prefer_simple_default_expression = true:suggestion | |
csharp_style_deconstructed_variable_declaration = true:suggestion |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Based on: https://kent-boogaart.com/blog/editorconfig-reference-for-c-developers