Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
erichiller committed Aug 29, 2023
0 parents commit 4416fb2
Show file tree
Hide file tree
Showing 31 changed files with 3,445 additions and 0 deletions.
281 changes: 281 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,281 @@
root = true
# top-most EditorConfig file


#######################################################
# SEVERITY LEVELS
#######################################################
# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-options
#
# Severity Build-time behavior
# -------- -------------------
# error Violations appear as build errors and cause builds to fail.
# warning Violations appear as build warnings but do not cause builds to fail (unless you have an option set to treat warnings as errors).
# suggestion Violations appear as build messages and as suggestions in the Visual Studio IDE.
# silent Violations aren't visible to the user.
# none Rule is suppressed completely.
# default The default severity of the rule is used.


# style rules of the form xxx = <true|false>:<severity> are no longer supported
# https://github.com/dotnet/roslyn/issues/44201

# Code Analysis Categories
# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/categories
#
# All CA Rules
# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/
#
# Use
# https://docs.microsoft.com/en-us/visualstudio/code-quality/use-roslyn-analyzers

#######################################################
#### Analyzer Rules ####
#######################################################
# see
# https://docs.microsoft.com/en-us/visualstudio/code-quality/code-analysis-for-managed-code-warnings
#######################################################

[*.cs]

indent_style = space
indent_size = 4
end_of_line = lf

# insert_final_newline = true
charset = utf-8


#######################################################
# Code Style / Formatting Rules
# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/formatting-rules
#######################################################
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = true

# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/formatting-rules#dotnet-namespace-options
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0130
dotnet_style_namespace_match_folder = false

# csharp_new_line_before_open_brace = methods, properties, control_blocks, types
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 = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_between_query_expression_clauses = true

csharp_indent_case_contents = true
csharp_indent_switch_labels = true
# flush_left || no_change
csharp_indent_labels = one_less_than_current
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents_when_block = true

csharp_space_after_cast = false
csharp_space_after_keywords_in_control_flow_statements = true
# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/formatting-rules#csharp_space_between_parentheses
csharp_space_between_parentheses = control_flow_statements, type_casts, expressions
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 = true
csharp_space_between_method_declaration_empty_parameter_list_parentheses = true
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = true
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 = true

## THIS for aligning declarations =>
# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/formatting-rules#csharp_space_around_declaration_statements
csharp_space_around_declaration_statements = ignore

csharp_space_before_open_square_brackets = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_square_brackets = true

csharp_preserve_single_line_statements = true
csharp_preserve_single_line_blocks = true

csharp_using_directive_placement = outside_namespace:warning

# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/formatting-rules#namespace-options
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0160-ide0161
csharp_style_namespace_declarations = file_scoped

#######################################################
# Naming Rules
# https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/naming-rules
# should be ordered from MOST to LEAST specific
# NOTE: JetBrains Rider supports more detailed naming settings
# https://www.jetbrains.com/help/rider/Coding_Assistance__Naming_Style.html#use-editorconfig-to-configure-naming-rules
#######################################################


## Public and ( Const or Static Readonly ) Fields
# Symbols - Static and Const
dotnet_naming_symbols.static_fields.applicable_kinds = field
dotnet_naming_symbols.static_fields.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.static_fields.required_modifiers = static, const

# Rules - Static and Const
dotnet_naming_rule.static_fields_all_caps_rule.symbols = static_fields
dotnet_naming_rule.static_fields_all_caps_rule.style = all_caps_style
dotnet_naming_rule.static_fields_all_caps_rule.severity = suggestion

# Symbols - Static and Readonly
dotnet_naming_symbols.static_readonly_fields.applicable_kinds = field
# dotnet_naming_symbols.static_readonly_fields.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.static_readonly_fields.applicable_accessibilities = public, internal, protected, protected_internal
dotnet_naming_symbols.static_readonly_fields.required_modifiers = static, readonly

# Rules - Static and Readonly + Static & Const
dotnet_naming_rule.static_readonly_fields_all_caps_rule.symbols = static_readonly_fields
dotnet_naming_rule.static_readonly_fields_all_caps_rule.style = all_caps_style
dotnet_naming_rule.static_readonly_fields_all_caps_rule.severity = suggestion

# Style
dotnet_naming_style.all_caps_style.capitalization = all_upper
# dotnet_naming_style.all_caps_style.required_prefix =
# dotnet_naming_style.all_caps_style.required_suffix =
# dotnet_naming_style.all_caps_style.word_separator =

## Private and ( Const or Static Readonly ) Fields
# Symbols - Static and Readonly - private
dotnet_naming_symbols.static_readonly_private_fields.applicable_kinds = field
dotnet_naming_symbols.static_readonly_private_fields.applicable_accessibilities = private, private_protected
dotnet_naming_symbols.static_readonly_private_fields.required_modifiers = static, readonly

# Rules - Static - private
dotnet_naming_rule.static_readonly_private_fields_all_lowercase.symbols = static_readonly_private_fields
dotnet_naming_rule.static_readonly_private_fields_all_lowercase.style = all_lower_snake__prefix
dotnet_naming_rule.static_readonly_private_fields_all_lowercase.severity = suggestion

# Symbols - Static and Readonly - private
dotnet_naming_symbols.private_const_fields.applicable_kinds = field
dotnet_naming_symbols.private_const_fields.applicable_accessibilities = private, private_protected
dotnet_naming_symbols.private_const_fields.required_modifiers = const

# Rules - Static and Const - private
dotnet_naming_rule.private_const_fields_all_lowercase.symbols = private_const_fields
dotnet_naming_rule.private_const_fields_all_lowercase.style = all_lower_snake__prefix
dotnet_naming_rule.private_const_fields_all_lowercase.severity = suggestion

# Style - Private and ( Const or Static Readonly ) Fields
dotnet_naming_style.all_lower_snake__prefix.capitalization = all_lower
dotnet_naming_style.all_lower_snake__prefix.required_prefix = _
# dotnet_naming_style.all_lower_snake__prefix.required_suffix =
dotnet_naming_style.all_lower_snake__prefix.word_separator = _


## Private
# Symbols
dotnet_naming_symbols.private_methods.applicable_kinds = method
dotnet_naming_symbols.private_methods.applicable_accessibilities = private, protected
# dotnet_naming_symbols.private_methods.required_modifiers =

# Rules
dotnet_naming_rule.private_methods_camel_case_rule.symbols = private_methods
dotnet_naming_rule.private_methods_camel_case_rule.style = private_methods_camel_case
dotnet_naming_rule.private_methods_camel_case_rule.severity = suggestion

# Style
dotnet_naming_style.private_methods_camel_case.capitalization = camel_case
# dotnet_naming_style.private_methods_camel_case.required_prefix =
# dotnet_naming_style.private_methods_camel_case.required_suffix =
# dotnet_naming_style.private_methods_camel_case.word_separator =


## Private & Protected Members
# Symbols
dotnet_naming_symbols.private_members.applicable_kinds = property,field,event
dotnet_naming_symbols.private_members.applicable_accessibilities = private,protected
# dotnet_naming_symbols.private_members.required_modifiers =

# Rules
dotnet_naming_rule.private_members_underscored_camel_case_rule.symbols = private_members
dotnet_naming_rule.private_members_underscored_camel_case_rule.style = private_members_underscored_camel_case
dotnet_naming_rule.private_members_underscored_camel_case_rule.severity = suggestion

# Style
dotnet_naming_style.private_members_underscored_camel_case.capitalization = camel_case
dotnet_naming_style.private_members_underscored_camel_case.required_prefix = _
# dotnet_naming_style.private_members_underscored_camel_case.required_suffix =
# dotnet_naming_style.private_members_underscored_camel_case.word_separator =


## Public
# Symbols
dotnet_naming_symbols.public_members.applicable_kinds = property,method,field
dotnet_naming_symbols.public_members.applicable_accessibilities = public
# dotnet_naming_symbols.public_members.required_modifiers =

# Rules
dotnet_naming_rule.public_members_pascal_case_rule.symbols = public_members
dotnet_naming_rule.public_members_pascal_case_rule.style = pascal_case
dotnet_naming_rule.public_members_pascal_case_rule.severity = suggestion

# Style
dotnet_naming_style.pascal_case.capitalization = pascal_case
# dotnet_naming_style.pascal_case.required_prefix =
# dotnet_naming_style.pascal_case.required_suffix =
# dotnet_naming_style.pascal_case.word_separator =


## Interfaces
# Symbols
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
# dotnet_naming_symbols.interface.required_modifiers =

# Rules
dotnet_naming_rule.interface_should_begin_with_i.severity = suggestion
dotnet_naming_rule.interface_should_begin_with_i.symbols = interface
dotnet_naming_rule.interface_should_begin_with_i.style = begins_with_i

# Style
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


## Types
# Symbols
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
# dotnet_naming_symbols.types.required_modifiers =

# Rules
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
# see above definition
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case

#
# ## Async
# # Symbols
# dotnet_naming_symbols.async_methods.applicable_kinds = method
# dotnet_naming_symbols.async_methods.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
# dotnet_naming_symbols.async_methods.required_modifiers = async
#
# # Rules
# dotnet_naming_rule.async_methods_async_suffix_rule.symbols = async_methods
# dotnet_naming_rule.async_methods_async_suffix_rule.style = async_methods_async_suffix_style
# dotnet_naming_rule.async_methods_async_suffix_rule.severity = suggestion
#
# # Style
# dotnet_naming_style.async_methods_async_suffix_style.capitalization = pascal_case
# # dotnet_naming_style.async_methods_async_suffix_style.required_prefix =
# dotnet_naming_style.async_methods_async_suffix_style.required_suffix = Async
# # dotnet_naming_style.async_methods_async_suffix_style.word_separator =

Loading

0 comments on commit 4416fb2

Please sign in to comment.