Skip to content

Commit

Permalink
Initial implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
skwasjer committed Jul 23, 2019
0 parents commit b4e032b
Show file tree
Hide file tree
Showing 19 changed files with 1,602 additions and 0 deletions.
389 changes: 389 additions & 0 deletions .editorconfig
@@ -0,0 +1,389 @@
root = true

# Editor config : https://editorconfig.org/
# VS reference: : https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference?view=vs-2017
# Resharper properties : https://www.jetbrains.com/help/resharper/EditorConfig_Index.html
# VSCode : https://github.com/editorconfig/editorconfig-vscode

###############################
# Base settings #
###############################

[*]
indent_style = space
indent_size = 4
insert_final_newline = false

[*.{cs,tt}]
charset = utf-8-bom
end_of_line = crlf
indent_style = tab

[*.{csproj,props}]
charset = utf-8-bom
end_of_line = crlf
indent_size = 2

# Misc
[*.{js,json,yml}]
charset = utf-8
indent_size = 2
end_of_line = lf

[*.md]
charset = utf-8
indent_size = 2
end_of_line = lf
trim_trailing_whitespace = false

###############################
# .NET Coding Conventions #
###############################

[*.{cs,vb}]
# Organize usings
dotnet_sort_system_directives_first = true

# this. preferences
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

# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion

# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent

# Modifier preferences
dotnet_style_require_accessibility_modifiers = always:warning
dotnet_style_readonly_field = true:suggestion

# Expression-level preferences
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent

###############################
# Naming Conventions #
###############################

# Style Definitions
dotnet_naming_style.pascal_case_style.capitalization = pascal_case

# Use PascalCase for constant fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.applicable_accessibilities = *
dotnet_naming_symbols.constant_fields.required_modifiers = const

###############################
# C# Code Style Rules #
###############################

[*.cs]
# var preferences
csharp_style_var_for_built_in_types = false:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = false:suggestion

# Expression-bodied members
csharp_style_expression_bodied_methods = false:none
csharp_style_expression_bodied_constructors = false:none
csharp_style_expression_bodied_operators = false:none
csharp_style_expression_bodied_properties = true:none
csharp_style_expression_bodied_indexers = true:none
csharp_style_expression_bodied_accessors = true:none

# Pattern-matching preferences
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion

# Null-checking preferences
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Modifier preferences
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion

# Expression-level preferences
csharp_prefer_braces = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_pattern_local_over_anonymous_function = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion

###############################
# C# Formatting Rules #
###############################

# New line preferences
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
csharp_new_line_between_query_expression_clauses = true

# Indentation preferences
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_indent_labels = flush_left

# Space preferences
csharp_space_after_cast = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_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
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false

# Wrapping preferences
csharp_preserve_single_line_statements = true
csharp_preserve_single_line_blocks = true

###############################
# Resharper custom rules #
###############################

# Preserve Existing Formatting
keep_blank_lines_in_declarations = 1
remove_blank_lines_near_braces_in_declarations = true
keep_blank_lines_in_code = 1
remove_blank_lines_near_braces_in_code = true

# Blank Lines
blank_lines_around_namespace = 1
blank_lines_inside_namespace = 0
blank_lines_around_type = 1
blank_lines_inside_type = 0
blank_lines_around_field = 0
blank_lines_around_single_line_field = 0
blank_lines_around_property = 0
blank_lines_around_single_line_property = 0
blank_lines_around_auto_property = 0
blank_lines_around_single_line_auto_property = 0
blank_lines_around_invocable = 1
blank_lines_around_single_line_invocable = 0
blank_lines_around_local_method = 1
blank_lines_around_single_line_local_method = 0
blank_lines_around_region = 1
blank_lines_inside_region = 1
blank_lines_between_using_groups = 0
blank_lines_after_using_list = 1
blank_lines_after_start_comment = 1
blank_lines_before_single_line_comment = 0
blank_lines_after_control_transfer_statements = 1 #check for block or each

# _Braces Layout_
brace_style = next_line
anonymous_method_declaration_braces = next_line
empty_block_style = multiline

# _Line Breaks_
# Preserve Existing Formatting
simple_embedded_statement_style = do_not_change
simple_case_statement_style = do_not_change
simple_embedded_block_style = do_not_change

# Place on New Line
new_line_before_else = true
new_line_before_while = false
new_line_before_catch = true
new_line_before_finally = true

# Line Wrapping
wrap_parameters_style = chop_if_long
wrap_before_declaration_lpar = true
wrap_after_declaration_lpar = true
wrap_arguments_style = chop_if_long
wrap_before_invocation_lpar = false
wrap_after_invocation_lpar = false
wrap_before_comma = false
wrap_before_arrow_with_expressions = false
wrap_after_dot_in_method_calls = false
wrap_chained_method_calls = chop_if_long
wrap_before_extends_colon = true
wrap_extends_list_style = wrap_if_long
wrap_for_stmt_header_style = chop_if_long
wrap_before_ternary_opsigns = true
wrap_ternary_expr_style = chop_if_long
wrap_linq_expressions = chop_if_long
wrap_before_binary_opsign = true
wrap_chained_binary_expressions = true
force_chop_compound_if_expression = false
force_chop_compound_while_expression = false
force_chop_compound_do_expression = false
wrap_multiple_type_parameer_constraints_style = chop_if_long
wrap_object_and_collection_initializer_style = chop_if_long #check
wrap_array_initializer_style = chop_if_long #check
wrap_before_first_type_parameter_constraint = true
wrap_before_type_parameter_langle = false

# Other
place_abstract_accessorholder_on_single_line = true
place_simple_accessorholder_on_single_line = true
place_accessor_with_attrs_holder_on_single_line = true #check
place_simple_accessor_on_single_line = true
place_simple_method_on_single_line = false
place_simple_anonymousmethod_on_single_line = true
place_simple_initializer_on_single_line = true
place_type_attribute_on_same_line = false
place_method_attribute_on_same_line = false
place_accessorholder_attribute_on_same_line = false
place_simple_accessor_attribute_on_same_line = false
place_complex_accessor_attribute_on_same_line = false
place_field_attribute_on_same_line = false
place_constructor_initializer_on_same_line = true
place_type_constraints_on_same_line = false
allow_comment_after_lbrace = false

# _Indentation_
indent_switch_labels = true
indent_nested_usings_stmt = false
indent_nested_fixed_stmt = false
indent_nested_lock_stmt = false
indent_nested_for_stmt = true
indent_nested_foreach_stmt = true
indent_nested_while_stmt = true
indent_type_constraints = true
stick_comment = false
indent_method_decl_pars = inside
indent_invocation_pars = inside
indent_statement_pars = outside
indent_pars = outside


# Alignments
align_multiline_parameter = true
align_first_arg_by_paren = false
align_multiline_argument = false
align_multiline_extends_list = true
align_multiline_expression = false
align_multiline_binary_expressions_chain = false #check
align_multiline_calls_chain = false
align_multiline_array_and_object_initializer = false
indent_anonymous_method_block = false
align_multiline_for_stmt = true
align_multiple_declaration = true
align_multline_type_parameter_list = true
align_multline_type_parameter_constrains = true
align_linq_query = true

int_align_fields = false
int_align_properties = false
int_align_methods = false
int_align_parameters = false
int_align_variables = false
int_align_assignments = false
int_align_nested_ternary = false
int_align_invocations = false
int_align_binary_expressions = false
int_align_comments = false

outdent_binary_ops = true
outdent_dots = false
special_else_if_treatment = true

# _Spaces_
space_before_method_call_parentheses = false
space_before_empty_method_call_parentheses = false
space_before_method_parentheses = false
space_before_empty_method_parentheses = false
space_before_array_access_brackets = false
space_before_if_parentheses = true
space_before_while_parentheses = true
space_before_catch_parentheses = true
space_before_switch_parentheses = true
space_before_for_parentheses = true
space_before_foreach_parentheses = true
space_before_using_parentheses = true
space_before_lock_parentheses = true
space_before_typeof_parentheses = false
space_before_default_parentheses = false
space_before_checked_parentheses = false
space_before_fixed_parentheses = true
space_before_sizeof_parentheses = false
space_before_nameof_parentheses = false
space_before_type_parameter_angle = false
space_before_type_argument_angle = false
space_around_binary_operator = true
space_around_member_access_operator = false
space_after_logical_not_op = false
space_after_unary_minus_op = false
space_after_unary_plus_op = false
space_after_ampersand_op = false
space_after_asterik_op = false
space_within_parentheses = false
space_between_method_declaration_parameter_list_parentheses = false
space_between_method_declaration_empty_parameter_list_parentheses = false
space_between_method_call_parameter_list_parentheses = false
space_between_method_call_empty_parameter_list_parentheses = false
space_within_array_access_brackets = false
space_between_typecast_parentheses = false
space_between_parentheses_of_control_flow_statements = false
space_within_typeof_parentheses = false
space_within_default_parentheses = false
space_within_checked_parentheses = false
space_within_sizeof_parentheses = false
space_within_nameof_parentheses = false
space_within_type_parameter_angles = false
space_within_type_argument_angles = false
space_before_ternary_quest = true
space_after_ternary_quest = true
space_before_ternary_colon = true
space_after_ternary_colon = true
space_after_cast = false
space_near_postfix_and_prefix_op = false
space_before_comma = false
space_after_comma = true
space_before_semicolon_in_for_statement = false
space_after_semicolon_in_for_statement = true
space_before_attribute_colon = false
space_after_attribute_colon = true
space_before_colon_in_inheritance_clause = true
space_after_colon_in_inheritance_clause = true
space_around_member_access_operator = false
space_around_lambda_arrow = true
space_before_singleline_accessorholder = true
space_in_singleline_accessorholder = true
space_between_accessors_in_singleline_property = true
space_between_attribute_sections = false #check
space_withing_empty_braces = true
space_in_singleline_method = true
space_in_singleline_anonymous_method = true
space_within_attribute_brackets = false
space_before_array_rank_brackets = false
space_within_array_rank_brackets = false
space_within_array_rank_empty_brackets = false
space_within_single_line_array_initializer_braces = true
space_before_pointer_asterik_declaration = false
space_before_semicolon = false
space_before_colon_in_case = false
space_before_nullable_mark = false
space_before_type_parameter_constraint_colon = true
space_after_type_parameter_constraint_colon = true
space_around_alias_eq = true
space_before_trailing_comment = true
space_after_operator_keyword = true

0 comments on commit b4e032b

Please sign in to comment.