Skip to content

Instantly share code, notes, and snippets.

@PAHeartBeat
Last active September 12, 2023 11:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PAHeartBeat/51b42bd226d32b30b1428133c4456543 to your computer and use it in GitHub Desktop.
Save PAHeartBeat/51b42bd226d32b30b1428133c4456543 to your computer and use it in GitHub Desktop.
.Editor config with the Code style Rules, code formatting rules, naming rules, naming styles, and warning suppress information for Sonar and SytleCop
# To learn more about .editorconfig see https://aka.ms/editorconfigdocs
####################################################
# Core EditorConfig Options #
####################################################
root = true
# All files
[*]
# Indentation and spacing
charset = utf-8
indent_size = 4
indent_style = tab
tab_width = 4
# New line preferences
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf
# Code files
[*.{cs,csx,vb,vbx,js}]
##################################################################
###################################################
# NET Coding Style Rule, Naming Conventions #
###################################################
# Code files
[*.{cs,vb}]
#############################
# .NET Coding Style Rule #
#############################
# severity options = error, warning, suggestion, silent, none or default
# Organize using directives
dotnet_sort_system_directives_first = true:warning
dotnet_separate_import_directive_groups = true:warning
# file header preference
file_header_template = unset:silent
# .NET namespace rules
dotnet_style_namespace_match_folder = true:silent
# 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_member_access = true:suggestion
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:warning # always_for_clarity, never_if_unnecessary
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:warning # always_for_clarity, never_if_unnecessary
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:suggestion # always_for_clarity, never_if_unnecessary
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:warning # always_for_clarity, never_if_unnecessary
# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent # always, for_non_interface_members, never, omit_if_default
# Expression-level preferences
dotnet_style_coalesce_expression = true:warning
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:warning
dotnet_style_object_initializer = true:suggestion
dotnet_style_operator_placement_when_wrapping = beginning_of_line:Wrapping
dotnet_style_prefer_auto_properties = true:suggestion
dotnet_style_prefer_compound_assignment = true:warning
dotnet_style_prefer_conditional_expression_over_assignment = true:warning
dotnet_style_prefer_conditional_expression_over_return = true:warning
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:warning
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:Wrapping
# Field preferences
dotnet_style_readonly_field = true:suggestion
# Parameter preferences
dotnet_code_quality_unused_parameters = non_public # all, non_public
# Suppression preferences
dotnet_remove_unnecessary_suppression_exclusions = none # none, all or Flag Ids
# New line preferences
dotnet_style_allow_multiple_blank_lines_experimental = false:warning
dotnet_style_allow_statement_immediately_after_block_experimental = true:suggestion
###############################
# NET Naming Conventions #
###############################
# Naming styles Definitions
###############################
# Normal Pascal Case.
dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
# Pascal case for interfaces.
dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
# Camel Case for non-private fields.
dotnet_naming_style.camelcase.required_prefix =
dotnet_naming_style.camelcase.required_suffix =
dotnet_naming_style.camelcase.word_separator =
dotnet_naming_style.camelcase.capitalization = camel_case
# Camel Case for private fields.
dotnet_naming_style._camelcase.required_prefix = _
dotnet_naming_style._camelcase.required_suffix =
dotnet_naming_style._camelcase.word_separator =
dotnet_naming_style._camelcase.capitalization = camel_case
# All Upper Case for Constant field.
dotnet_naming_style.constants.required_prefix =
dotnet_naming_style.constants.required_suffix =
dotnet_naming_style.constants.word_separator = _
dotnet_naming_style.constants.capitalization = all_upper
# Pascal Case option for events
dotnet_naming_style.events__pascal_case_.required_prefix =
dotnet_naming_style.events__pascal_case_.required_suffix = Event
dotnet_naming_style.events__pascal_case_.word_separator =
dotnet_naming_style.events__pascal_case_.capitalization = pascal_case
# Naming Symbol specifications
###############################
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.enum.applicable_kinds = enum
dotnet_naming_symbols.enum.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.enum.required_modifiers =
dotnet_naming_symbols.delegate.applicable_kinds = delegate
dotnet_naming_symbols.delegate.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.delegate.required_modifiers =
dotnet_naming_symbols.event.applicable_kinds = event
dotnet_naming_symbols.event.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.event.required_modifiers =
dotnet_naming_symbols.method.applicable_kinds = method
dotnet_naming_symbols.method.applicable_accessibilities = public
dotnet_naming_symbols.method.required_modifiers =
dotnet_naming_symbols.private_method.applicable_kinds = method
dotnet_naming_symbols.private_method.applicable_accessibilities = private
dotnet_naming_symbols.private_method.required_modifiers =
dotnet_naming_symbols.abstract_method.applicable_kinds = method
dotnet_naming_symbols.abstract_method.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.abstract_method.required_modifiers = abstract
dotnet_naming_symbols.static_method.applicable_kinds = method
dotnet_naming_symbols.static_method.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.static_method.required_modifiers = static
dotnet_naming_symbols.property.applicable_kinds = property
dotnet_naming_symbols.property.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.property.required_modifiers =
dotnet_naming_symbols.public_or_protected_or_internal_field.applicable_kinds = field
dotnet_naming_symbols.public_or_protected_or_internal_field.applicable_accessibilities = public, internal, protected, protected_internal
dotnet_naming_symbols.public_or_protected_or_internal_field.required_modifiers =
dotnet_naming_symbols.static_field.applicable_kinds = field
dotnet_naming_symbols.static_field.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.static_field.required_modifiers = static
dotnet_naming_symbols.private__field.applicable_kinds = field
dotnet_naming_symbols.private__field.applicable_accessibilities = private
dotnet_naming_symbols.private__field.required_modifiers =
dotnet_naming_symbols.private_static_field.applicable_kinds = field
dotnet_naming_symbols.private_static_field.applicable_accessibilities = private
dotnet_naming_symbols.private_static_field.required_modifiers = static
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.non_field_members.required_modifiers =
dotnet_naming_symbols.constants.applicable_kinds = field
dotnet_naming_symbols.constants.applicable_accessibilities = *
dotnet_naming_symbols.constants.required_modifiers = const
# Naming Rules
###############################
# Interface
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
# Classes and other types
dotnet_naming_rule.types_should_be_pascal_case.severity = error
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
# Public Methods
dotnet_naming_rule.method_should_be_pascal_case.severity = error
dotnet_naming_rule.method_should_be_pascal_case.symbols = method
dotnet_naming_rule.method_should_be_pascal_case.style = pascal_case
# Private Methods
dotnet_naming_rule.private_method_should_be_pascal_case.severity = error
dotnet_naming_rule.private_method_should_be_pascal_case.symbols = private_method
dotnet_naming_rule.private_method_should_be_pascal_case.style = pascal_case
# Public-Private but abstract Methods
dotnet_naming_rule.abstract_method_should_be_pascal_case.severity = error
dotnet_naming_rule.abstract_method_should_be_pascal_case.symbols = abstract_method
dotnet_naming_rule.abstract_method_should_be_pascal_case.style = pascal_case
# Static Methods
dotnet_naming_rule.static_method_should_be_pascal_case.severity = error
dotnet_naming_rule.static_method_should_be_pascal_case.symbols = static_method
dotnet_naming_rule.static_method_should_be_pascal_case.style = pascal_case
# Constants fields
dotnet_naming_rule.constants_should_be_constants.severity = error
dotnet_naming_rule.constants_should_be_constants.symbols = constants
dotnet_naming_rule.constants_should_be_constants.style = constants
# Properties with Getter/Setter
dotnet_naming_rule.property_should_be_pascal_case.severity = error
dotnet_naming_rule.property_should_be_pascal_case.symbols = property
dotnet_naming_rule.property_should_be_pascal_case.style = pascal_case
# Delegate Types
dotnet_naming_rule.delegate_should_be_pascal_case.severity = error
dotnet_naming_rule.delegate_should_be_pascal_case.symbols = delegate
dotnet_naming_rule.delegate_should_be_pascal_case.style = pascal_case
# Event Types
dotnet_naming_rule.event_should_be_events__pascal_case_.severity = error
dotnet_naming_rule.event_should_be_events__pascal_case_.symbols = event
dotnet_naming_rule.event_should_be_events__pascal_case_.style = events__pascal_case_
# Private fields
dotnet_naming_rule.private__field_should_be__camelcase.severity = error
dotnet_naming_rule.private__field_should_be__camelcase.symbols = private__field
dotnet_naming_rule.private__field_should_be__camelcase.style = _camelcase
# Non-private fields.
dotnet_naming_rule.public_or_protected_or_internal_field_should_be_camelcase.severity = error
dotnet_naming_rule.public_or_protected_or_internal_field_should_be_camelcase.symbols = public_or_protected_or_internal_field
dotnet_naming_rule.public_or_protected_or_internal_field_should_be_camelcase.style = camelcase
# Private but static fields
dotnet_naming_rule.private_static_field_should_be__camelcase.severity = error
dotnet_naming_rule.private_static_field_should_be__camelcase.symbols = private_static_field
dotnet_naming_rule.private_static_field_should_be__camelcase.style = _camelcase
# Non-Private static fields
dotnet_naming_rule.static_field_should_be_camelcase.severity = error
dotnet_naming_rule.static_field_should_be_camelcase.symbols = static_field
dotnet_naming_rule.static_field_should_be_camelcase.style = camelcase
# Enum name Type
dotnet_naming_rule.enum_should_be_pascal_case.severity = error
dotnet_naming_rule.enum_should_be_pascal_case.symbols = enum
dotnet_naming_rule.enum_should_be_pascal_case.style = pascal_case
# Other members
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
##################################################################
[*.cs]
##################################################################
# C# Formatting rules, Coding Conventions, naming conventions #
##################################################################
###############################
# C# Coding Style Rules #
###############################
# var preferences
csharp_style_var_elsewhere = true:suggestion
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
# Expression-bodied members
csharp_style_expression_bodied_accessors = when_on_single_line:suggestion # true, false, when_on_single_line
csharp_style_expression_bodied_constructors = when_on_single_line:suggestion # true, false, when_on_single_line
csharp_style_expression_bodied_indexers = when_on_single_line:suggestion # true, false, when_on_single_line
csharp_style_expression_bodied_lambdas = when_on_single_line:suggestion # true, false, when_on_single_line
csharp_style_expression_bodied_local_functions = when_on_single_line:suggestion # true, false, when_on_single_line
csharp_style_expression_bodied_methods = when_on_single_line:suggestion # true, false, when_on_single_line
csharp_style_expression_bodied_operators = when_on_single_line:suggestion # true, false, when_on_single_line
csharp_style_expression_bodied_properties = when_on_single_line:suggestion # true, false, when_on_single_line
# Pattern matching preferences
csharp_style_prefer_switch_expression = true:suggestion
csharp_style_prefer_pattern_matching = true:suggestion
csharp_style_prefer_not_pattern = true:warning
csharp_style_prefer_extended_property_pattern = true:warning
csharp_style_pattern_matching_over_is_with_cast_check = true:warning
csharp_style_pattern_matching_over_as_with_null_check = true:warning
# Null-checking preferences
csharp_style_conditional_delegate_call = true:suggestion
csharp_style_throw_expression = true:suggestion
# Modifier preferences
csharp_prefer_static_local_function = false:warning
csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:silent
# Code block preference
csharp_prefer_braces = when_multiline:suggestion # when_multiline, true, false
csharp_prefer_simple_using_statement = true:suggestion
csharp_style_namespace_declarations = block_scoped # block_scoped or file_scoped
# Expression-level preferences
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_style_implicit_object_creation_when_type_is_apparent = false:silent
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_local_over_anonymous_function = true
csharp_style_prefer_null_check_over_type_check = true
csharp_style_prefer_range_operator = true
csharp_style_prefer_tuple_swap = true
# Misc or Unnecessary Code Rules
csharp_style_unused_value_assignment_preference = discard_variable:error # discard_variable, unused_local_variable
csharp_style_unused_value_expression_statement_preference = discard_variable:error # discard_variable, unused_local_variable
# Using directive options
csharp_using_directive_placement = outside_namespace:warning # outside_namespace or inside_namespace
# New line preferences
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true
csharp_style_allow_embedded_statements_on_same_line_experimental = true
###############################
# C# Formatting Rules #
###############################
# New line preferences
csharp_new_line_before_catch = false
csharp_new_line_before_else = false
csharp_new_line_before_finally = false
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = none # none, all, accessors, anonymous_methods, anonymous_types, control_blocks, events, indexers, lambdas, local_functions, methods, object_collection_array_initializers, properties, types
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 = false
csharp_indent_labels = flush_left # flush_left, one_less_than_current or no_change
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 # before_and_after, none, or ignore
csharp_space_around_declaration_statements = false # false or 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 # true, false, control_flow_statements, expressions, or type_casts
csharp_space_between_square_brackets = false
# Wrapping preferences
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true
###############################
# C# Analyzer rules #
###############################
# Severity option
# none, silent, suggestion, warning, error
# SA1027: Use tabs correctly
# Justification: Code Style and auto format is setup to use tab only to avoid extra character.
dotnet_diagnostic.SA1027.severity = silent
# SA1200: Using directives should be placed correctly
# Justification:
dotnet_diagnostic.SA1200.severity = silent
# SA1500: Braces for multi-line statements should not share line
# Justification: Brace policy Configured to share same bracing for other backend language like JavaScript, Node.Js
dotnet_diagnostic.SA1500.severity = silent
# SA1310: Field names should not contain underscore
# Justification: Naming Convention for Constant is created for to use All Upper Case with Underscore as word separator to identify Const by it's name.
dotnet_diagnostic.SA1310.severity = silent
# SA1124: Do not use regions
# Justification: We will be using regions to group code or constant based on uses.
dotnet_diagnostic.SA1124.severity = silent
# SA1309: Field names should not begin with underscore
# Justification: Naming Convention for private field is created for to use a single underscore as prefix to identify private filed by it's name.
dotnet_diagnostic.SA1309.severity = silent
# CA1707: Identifiers should not contain underscores
# Justification: Naming Convention for Constant is created for to use All Upper Case with Underscore as word separator to identify Const by it's name.
dotnet_diagnostic.CA1707.severity = silent
# SA1307: Accessible fields should begin with upper-case letter
# Justification:
# dotnet_diagnostic.SA1307.severity = silent
# SA1311: Static readonly fields should begin with upper-case letter
# Justification:
# dotnet_diagnostic.SA1311.severity = silent
# S1104: Fields should not have public accessibility
# Justification: we are using filed variable for input and out data structure for services.
dotnet_diagnostic.S1104.severity = silent
# S2328: "GetHashCode" should not reference mutable fields
# Justification: we are want to use the string data as id to identity unique object via hashCode.
dotnet_diagnostic.S2328.severity = silent
[*.vb]
##################################################################
# VB Formatting rules, Coding Conventions, naming conventions #
##################################################################
###############################
# VB Coding Conventions #
###############################
# Modifier preferences
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:silent
# Pattern matching preferences
visual_basic_style_prefer_isnot_expression = true:warning
# Misc or Unnecessary Code Rules
visual_basic_style_prefer_simplified_object_creation = true:warning
###################################################################
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment