-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into file-logging
- Loading branch information
Showing
37 changed files
with
1,113 additions
and
554 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
{ | ||
"version": 1, | ||
"isRoot": true, | ||
"tools": { | ||
"csharpier": { | ||
"version": "0.30.3", | ||
"commands": [ | ||
"dotnet-csharpier" | ||
], | ||
"rollForward": false | ||
} | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,74 +1,221 @@ | ||
max_line_length = 120 | ||
# EditorConfig is awesome:http://EditorConfig.org | ||
|
||
# top-most EditorConfig file | ||
root = true | ||
|
||
# Don't use tabs for indentation. | ||
[*] | ||
indent_style = space | ||
# (Please don't specify an indent_size here; that has too many unintended consequences.) | ||
|
||
# Code files | ||
[*.{cs,csx,vb,vbx}] | ||
indent_size = 4 | ||
charset = utf-8-bom | ||
|
||
# Xml project files | ||
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] | ||
indent_size = 2 | ||
|
||
# Xml config files | ||
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] | ||
indent_size = 2 | ||
|
||
# JSON files | ||
[*.json] | ||
indent_size = 2 | ||
|
||
### Dotnet code style settings ### | ||
|
||
[*.{cs,vb}] | ||
#### Naming styles #### | ||
# Organize usings | ||
dotnet_separate_import_directive_groups = false | ||
dotnet_sort_system_directives_first = true | ||
|
||
# Avoid "this." and "Me." if not necessary | ||
dotnet_style_qualification_for_field = false:silent | ||
dotnet_style_qualification_for_property = false:silent | ||
dotnet_style_qualification_for_method = false:silent | ||
dotnet_style_qualification_for_event = false:silent | ||
|
||
# Use language keywords instead of framework type names for type references | ||
dotnet_style_predefined_type_for_locals_parameters_members = true:warning | ||
dotnet_style_predefined_type_for_member_access = true:warning | ||
|
||
# Parentheses preferences | ||
dotnet_style_parentheses_in_arithmetic_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 | ||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent | ||
|
||
# Modifier preferences | ||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:warning | ||
|
||
# Field preferences | ||
dotnet_style_readonly_field = true:warning | ||
|
||
# Parameter preferences | ||
dotnet_code_quality_unused_parameters = all:warning | ||
|
||
# Expression-level preferences | ||
dotnet_style_coalesce_expression = true:suggestion | ||
dotnet_style_collection_initializer = true:suggestion | ||
dotnet_style_explicit_tuple_names = true:suggestion | ||
dotnet_style_null_propagation = true:suggestion | ||
dotnet_style_object_initializer = true:suggestion | ||
dotnet_style_prefer_auto_properties = true:silent | ||
dotnet_style_prefer_compound_assignment = true:warning | ||
dotnet_style_prefer_conditional_expression_over_assignment = true:silent | ||
dotnet_style_prefer_conditional_expression_over_return = true:silent | ||
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:suggestion | ||
dotnet_style_prefer_simplified_interpolation = true:suggestion | ||
|
||
### CSharp code style settings ### | ||
[*.cs] | ||
|
||
# Naming rules | ||
#### C# Coding Conventions #### | ||
|
||
# Prefer "var" everywhere | ||
csharp_style_var_for_built_in_types = true:silent | ||
csharp_style_var_when_type_is_apparent = true:silent | ||
csharp_style_var_elsewhere = true:silent | ||
|
||
# Prefer method-like constructs to have a block body, except for lambdas | ||
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_local_functions = false:none | ||
csharp_style_expression_bodied_lambdas = true:none | ||
|
||
|
||
# Pattern matching preferences | ||
csharp_style_pattern_matching_over_as_with_null_check = true:warning | ||
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion | ||
csharp_style_prefer_switch_expression = true:suggestion | ||
|
||
# Null-checking preferences | ||
csharp_style_conditional_delegate_call = true:warning | ||
|
||
# Modifier preferences | ||
csharp_prefer_static_local_function = true:warning | ||
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent | ||
|
||
# Code-block preferences | ||
csharp_prefer_braces = when_multiline:warning | ||
csharp_prefer_simple_using_statement = true:warning | ||
|
||
# Expression-level preferences | ||
csharp_style_unused_value_assignment_preference = discard_variable:warning | ||
csharp_prefer_simple_default_expression = true:suggestion | ||
csharp_style_deconstructed_variable_declaration = true:suggestion | ||
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_range_operator = true:suggestion | ||
csharp_style_throw_expression = true:suggestion | ||
csharp_style_unused_value_expression_statement_preference = discard_variable:silent | ||
|
||
# 'using' directive preferences | ||
csharp_using_directive_placement = outside_namespace:silent | ||
|
||
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion | ||
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface | ||
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i | ||
#### 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_block_contents = true | ||
csharp_indent_braces = false | ||
csharp_indent_case_contents = true | ||
csharp_indent_case_contents_when_block = true | ||
csharp_indent_labels = 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 | ||
csharp_space_around_declaration_statements = false | ||
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 | ||
|
||
### Visual Basic code style settings ### | ||
[*.vb] | ||
|
||
# Expression-level preferences | ||
visual_basic_style_unused_value_assignment_preference = unused_local_variable:warning | ||
|
||
|
||
### Configuration for IDE code style by diagnostic IDs ### | ||
[*.{cs,vb}] | ||
|
||
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion | ||
dotnet_naming_rule.types_should_be_pascal_case.symbols = types | ||
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case | ||
# IDE2000: Allow multiple blank lines | ||
dotnet_style_allow_multiple_blank_lines_experimental = false | ||
|
||
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 | ||
# IDE2001: Embedded statements must be on their own line | ||
csharp_style_allow_embedded_statements_on_same_line_experimental = false | ||
|
||
# Symbol specifications | ||
# IDE2002: Consecutive braces must not have blank line between them | ||
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = false | ||
|
||
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 = | ||
# IDE2003: Blank line required between block and subsequent statement | ||
dotnet_style_allow_statement_immediately_after_block_experimental = false | ||
|
||
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 = | ||
# IDE2004: Blank line not allowed after constructor initializer colon | ||
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = false | ||
|
||
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, private_protected | ||
dotnet_naming_symbols.non_field_members.required_modifiers = | ||
### Configuration for .Net analyzers executed on this repo ### | ||
[*.{cs,vb}] | ||
|
||
# Naming styles | ||
# Default analyzed API surface = 'all' (public APIs + non-public APIs) | ||
dotnet_code_quality.api_surface = all | ||
|
||
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 | ||
# Restrict the analyzed API surface for certain analyzers to 'public' (public APIs only). | ||
# CA1043: Use integral or string argument for indexers | ||
dotnet_code_quality.CA1043.api_surface = public | ||
# CA1707: Identifiers should not contain underscores | ||
dotnet_code_quality.CA1707.api_surface = public | ||
# CA1720: Identifiers should not contain type names | ||
dotnet_code_quality.CA1720.api_surface = public | ||
|
||
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 | ||
# Exclude single letter type parameter names | ||
# CA1715: Identifiers should have correct prefix | ||
dotnet_code_quality.CA1715.exclude_single_letter_type_parameters = true | ||
|
||
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 | ||
dotnet_style_operator_placement_when_wrapping = beginning_of_line | ||
tab_width = 4 | ||
indent_size = 4 | ||
end_of_line = crlf | ||
|
||
[*.cs] | ||
csharp_indent_labels = flush_left | ||
csharp_using_directive_placement = outside_namespace:silent | ||
csharp_prefer_simple_using_statement = false:suggestion | ||
csharp_prefer_braces = true:silent | ||
csharp_style_namespace_declarations = block_scoped:silent | ||
csharp_style_prefer_method_group_conversion = true:silent | ||
csharp_style_prefer_top_level_statements = false:silent | ||
csharp_style_prefer_primary_constructors = true:suggestion | ||
csharp_style_expression_bodied_methods = true:silent | ||
csharp_style_expression_bodied_constructors = true:silent | ||
csharp_style_expression_bodied_operators = true:silent | ||
csharp_style_expression_bodied_properties = true:silent | ||
csharp_style_expression_bodied_indexers = true:silent | ||
csharp_style_expression_bodied_accessors = true:silent | ||
|
||
# ADDED | ||
# CA1305: Pass IFormatProvider - https://github.com/dotnet/roslyn-analyzers/issues/6379 | ||
dotnet_diagnostic.CA1305.severity = suggestion | ||
|
||
[*.cs] | ||
# Disable 'Use primary constructor' | ||
dotnet_diagnostic.IDE0290.severity = none | ||
# CA1851: Possible multiple enumerations of 'IEnumerable' collection - https://github.com/dotnet/roslyn-analyzers/issues/6379 | ||
dotnet_diagnostic.CA1851.severity = suggestion | ||
|
||
### Configuration for PublicAPI analyzers executed on this repo ### | ||
[*.{cs,vb}] | ||
|
||
# Analyzers bail-out if the PublicAPI.*.txt file is not found | ||
dotnet_public_api_analyzer.require_api_files = true |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
############################################################################### | ||
# Set default behaviour to automatically normalize line endings. | ||
############################################################################### | ||
* text=auto | ||
|
||
############################################################################### | ||
# Set default behaviour for command prompt diff. | ||
############################################################################### | ||
*.cs diff=csharp |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: Run static checks | ||
description: Runs formatting and style checks | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- name: Setup .NET | ||
uses: actions/setup-dotnet@v4 | ||
|
||
- name: Restore dependencies | ||
shell: bash | ||
run: | | ||
dotnet restore | ||
dotnet tool restore | ||
- name: Check formatting | ||
shell: bash | ||
run: dotnet csharpier --check . | ||
|
||
- name: Check style | ||
shell: bash | ||
run: | | ||
dotnet format style backend24.sln --verify-no-changes --verbosity diagnostic | ||
dotnet format analyzers backend24.sln --verify-no-changes --verbosity diagnostic |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
name: Run checks | ||
|
||
on: [push, pull_request] | ||
|
||
jobs: | ||
call-skip: | ||
uses: ./.github/workflows/skip.yml | ||
secrets: inherit | ||
|
||
call-test: | ||
needs: call-skip | ||
if: ${{needs.call-skip.outputs.should_skip != 'true'}} | ||
uses: ./.github/workflows/test.yml | ||
secrets: inherit |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
name: Skip unnecessary workflow runs | ||
|
||
on: | ||
workflow_call: | ||
outputs: | ||
should_skip: | ||
value: ${{jobs.skip.outputs.should_skip}} | ||
|
||
jobs: | ||
skip: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
should_skip: ${{steps.skip_check.outputs.should_skip}} | ||
|
||
steps: | ||
- id: skip_check | ||
uses: fkirc/skip-duplicate-actions@v5 | ||
with: | ||
paths: '["metroidvania/Assets/Scripts/**", "metroidvania/Assets/Tests/**"]' | ||
cancel_others: "true" | ||
skip_after_successful_duplicate: "true" | ||
concurrent_skipping: "same_content_newer" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
name: Run checks and tests | ||
|
||
on: workflow_call | ||
|
||
jobs: | ||
check: | ||
name: Run style checks | ||
runs-on: ubuntu-latest | ||
# Skip checks for PR merges | ||
if: (github.event_name == 'push' && contains(toJSON(github.event.head_commit.message), 'Merge pull request ') == false) | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: ./.github/actions/check |
Oops, something went wrong.