. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38 |
39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40 |
41 | ## Attribution
42 |
43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44 |
45 | [homepage]: http://contributor-covenant.org
46 | [version]: http://contributor-covenant.org/version/1/4/
47 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Hinox
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | _Hinox_ is a library part of the [_SceneGate_](https://github.com/SceneGate)
24 | framework that provides support for **PS1 (PSX) file formats.**
25 |
26 | ## Supported formats
27 |
28 | 🚧 Project in an early development phase. No formats are supported yet.
29 |
30 | ## Usage
31 |
32 | The project provides the following .NET libraries (NuGet packages in nuget.org).
33 | The libraries work on supported versions of .NET.
34 |
35 | - [](https://www.nuget.org/packages/SceneGate.Hinox)
36 | 🚧 **not ready yet**
37 | - `SceneGate.Hinox.Audio`: audio codecs.
38 |
39 | Preview releases can be found in this
40 | [Azure DevOps package repository](https://dev.azure.com/SceneGate/SceneGate/_packaging?_a=feed&feed=SceneGate-Preview).
41 | To use a preview release, create a file `nuget.config` in the same directory of
42 | your solution file (.sln) with the following content:
43 |
44 | ```xml
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | ```
62 |
63 | ## Documentation
64 |
65 | Documentation is not yet available, but it will be published in the
66 | [project website](https://scenegate.github.io/Hinox).
67 |
68 | Don't hesitate to ask questions in the
69 | [project Discussion site!](https://github.com/SceneGate/Hinox/discussions)
70 |
71 | ## Build
72 |
73 | The project requires .NET 9.0 SDK to build.
74 |
75 | To build, test and generate artifacts run:
76 |
77 | ```sh
78 | # Build and run tests
79 | dotnet run --project build/orchestrator
80 |
81 | # (Optional) Create bundles (nuget, zips, docs)
82 | dotnet run --project build/orchestrator -- --target=Bundle
83 | ```
84 |
85 | To build the documentation only, run:
86 |
87 | ```sh
88 | dotnet docfx docs/docfx.json --serve
89 | ```
90 |
91 | ## Special thanks
92 |
93 | The standard file formats were based on the amazing reverse engineering work of
94 | Martin Korth at [PSX Spex](http://problemkaputt.de/psx-spx.htm).
95 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing guidelines
2 |
3 | Thanks for taking the time to contribute! :sparkles:
4 |
5 | In this document you will find all the information you need to make sure that
6 | the projects continues to be consistent and with great quality!
7 |
8 | > [!NOTE]
9 | > By contributing in this repository you accept the
10 | > [developer certificate of origin](https://developercertificate.org/).
11 |
12 | ## Reporting features and issues
13 |
14 | ### Issues
15 |
16 | When reporting a problem, be as specific as possible. Ideally, you should
17 | provide an small snippet of code that reproduces the issue.
18 |
19 | Please fill the default template so we can have all the required information to
20 | address the issue.
21 |
22 | ### Features
23 |
24 | Features are requested and handled as GitHub _issues_.
25 |
26 | If you want to ask for a new feature, first make sure it hasn't been reported
27 | yet by using the search box in the issue tab. Make sure that the feature aligns
28 | with the direction of the project.
29 |
30 | ## Pull Request
31 |
32 | Before starting a pull request, create an issue
33 | [requesting the feature](#features) you would like to see and implement. If you
34 | are fixing a bug, create also an issue to be able to track the problem.
35 |
36 | In the issue or feature request specify that that you would like to work on it.
37 | The team will reply as soon as possible to discuss the proposal. This guarantee
38 | the Pull Request implementation match the direction the project is going.
39 |
40 | In general, the process to create a pull request is:
41 |
42 | 1. Create an issue describing the bug or feature and state you would like to
43 | work on that.
44 | 2. The team will cheer you and/or discuss with you the issue.
45 | 3. Fork the project (if not done already).
46 | 4. Clone your forked project and create a git branch.
47 | 5. Make the necessary code changes in as many commits as you want. The commit
48 | message should follow this convention:
49 |
50 | ```plain
51 | :emoji: Short description #IssueID
52 |
53 | Long description if needed.
54 | ```
55 |
56 | 6. Create a pull request. After reviewing your changes and making any new
57 | commits if needed, the team will approve and merge it.
58 |
59 | For a complete list of emoji description see
60 | [this repository](https://github.com/slashsBin/styleguide-git-commit-message#suggested-emojis).
61 |
62 | ## Code Guidelines
63 |
64 | The project includes a `.editorconfig` file that ensures the code style is
65 | consistent. It is supported in any modern IDE.
66 |
67 | In general, we follow the following standard guidelines with custom changes:
68 |
69 | - [Mono Code Guidelines](https://raw.githubusercontent.com/mono/website/gh-pages/community/contributing/coding-guidelines.md).
70 | - [Microsoft Framework Design Guidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/)
71 | - [Microsoft C# Coding Convetions](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions).
72 |
73 | And as the
74 | [mono team says](https://www.mono-project.com/community/contributing/coding-guidelines/#performance-and-readability):
75 |
76 | - It is more important to be correct than to be fast.
77 | - It is more important to be maintainable than to be fast.
78 | - Fast code that is difficult to maintain is likely going to be looked down
79 | upon.
80 |
81 | Make sure to follow these tips:
82 |
83 | - :heavy_check_mark: **DO** write documentation for any public type and method.
84 | - :heavy_check_mark: **DO** write a test for all the possible code branches of
85 | your methods. Use a TDD approach.
86 | - :heavy_check_mark: **DO** seek for the maximum test coverage.
87 | - :heavy_check_mark: **DO** clean compiler warning.
88 |
--------------------------------------------------------------------------------
/src/Hinox.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26124.0
5 | MinimumVisualStudioVersion = 15.0.26124.0
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hinox", "Hinox\Hinox.csproj", "{07E6EBB9-380D-4813-AFCD-E5856501929A}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hinox.Utils", "Hinox.Utils/Hinox.Utils.csproj", "{CB7B12D4-90B6-4564-8ECC-B6954E61A11F}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hinox.Tests", "Hinox.Tests\Hinox.Tests.csproj", "{276997DA-06FC-4C8A-AA82-92C3373C69A3}"
11 | EndProject
12 | Global
13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
14 | Debug|Any CPU = Debug|Any CPU
15 | Debug|x64 = Debug|x64
16 | Debug|x86 = Debug|x86
17 | Release|Any CPU = Release|Any CPU
18 | Release|x64 = Release|x64
19 | Release|x86 = Release|x86
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
25 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
26 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Debug|Any CPU.Build.0 = Debug|Any CPU
27 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Debug|x64.ActiveCfg = Debug|Any CPU
28 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Debug|x64.Build.0 = Debug|Any CPU
29 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Debug|x86.ActiveCfg = Debug|Any CPU
30 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Debug|x86.Build.0 = Debug|Any CPU
31 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Release|Any CPU.ActiveCfg = Release|Any CPU
32 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Release|Any CPU.Build.0 = Release|Any CPU
33 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Release|x64.ActiveCfg = Release|Any CPU
34 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Release|x64.Build.0 = Release|Any CPU
35 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Release|x86.ActiveCfg = Release|Any CPU
36 | {07E6EBB9-380D-4813-AFCD-E5856501929A}.Release|x86.Build.0 = Release|Any CPU
37 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
38 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Debug|Any CPU.Build.0 = Debug|Any CPU
39 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Debug|x64.ActiveCfg = Debug|Any CPU
40 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Debug|x64.Build.0 = Debug|Any CPU
41 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Debug|x86.ActiveCfg = Debug|Any CPU
42 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Debug|x86.Build.0 = Debug|Any CPU
43 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Release|Any CPU.ActiveCfg = Release|Any CPU
44 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Release|Any CPU.Build.0 = Release|Any CPU
45 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Release|x64.ActiveCfg = Release|Any CPU
46 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Release|x64.Build.0 = Release|Any CPU
47 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Release|x86.ActiveCfg = Release|Any CPU
48 | {CB7B12D4-90B6-4564-8ECC-B6954E61A11F}.Release|x86.Build.0 = Release|Any CPU
49 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
50 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
51 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Debug|x64.ActiveCfg = Debug|Any CPU
52 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Debug|x64.Build.0 = Debug|Any CPU
53 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Debug|x86.ActiveCfg = Debug|Any CPU
54 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Debug|x86.Build.0 = Debug|Any CPU
55 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
56 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Release|Any CPU.Build.0 = Release|Any CPU
57 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Release|x64.ActiveCfg = Release|Any CPU
58 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Release|x64.Build.0 = Release|Any CPU
59 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Release|x86.ActiveCfg = Release|Any CPU
60 | {276997DA-06FC-4C8A-AA82-92C3373C69A3}.Release|x86.Build.0 = Release|Any CPU
61 | EndGlobalSection
62 | EndGlobal
63 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Top-level config file
2 | root = true
3 |
4 | # All files
5 | [*]
6 | indent_style = space
7 |
8 | [*.yml]
9 | indent_size = 2
10 |
11 | [*.md]
12 | charset = utf-8
13 | insert_final_newline = true
14 | end_of_line = unset # Leave it to git
15 | indent_style = space
16 | indent_size = 2
17 | max_line_length = 80
18 |
19 | # XML project files
20 | [*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
21 | indent_size = 2
22 |
23 | # XML config files
24 | [*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
25 | indent_size = 2
26 |
27 | # Generic C# files
28 | [*.{cs,vb}]
29 |
30 | ## Generic options
31 | charset = utf-8-bom
32 | indent_size = 4
33 | indent_style = space
34 | tab_width = 8
35 | trim_trailing_whitespace = true
36 | end_of_line = unset # Leave it to git
37 | insert_final_newline = true
38 |
39 | ## .NET style rules
40 | ### Organize usings
41 | dotnet_separate_import_directive_groups = false
42 | dotnet_sort_system_directives_first = true
43 | file_header_template = unset # too long to set here
44 |
45 | ### this. and Me. qualifiers
46 | dotnet_style_qualification_for_field = false:silent
47 | dotnet_style_qualification_for_property = false:silent
48 | dotnet_style_qualification_for_method = false:silent
49 | dotnet_style_qualification_for_event = false:silent
50 |
51 | ### Language keywords instead of framework type names for type references
52 | dotnet_style_predefined_type_for_locals_parameters_members = true:warning
53 | dotnet_style_predefined_type_for_member_access = true:warning
54 |
55 | ### Modifier preferences
56 | dotnet_style_require_accessibility_modifiers = for_non_interface_members:warning
57 | dotnet_diagnostic.SA1400.severity = warning # it doesn't follow the above value
58 | dotnet_style_readonly_field = true:warning
59 |
60 | ### Parentheses preferences
61 | dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:warning
62 | dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:warning
63 | dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:warning
64 | dotnet_style_parentheses_in_other_operators = never_if_unnecessary:warning
65 |
66 | ### Expression-level preferences
67 | dotnet_style_object_initializer = true:suggestion
68 | dotnet_style_collection_initializer = true:warning
69 | dotnet_style_explicit_tuple_names = true:warning
70 | dotnet_style_prefer_inferred_tuple_names = true:suggestion
71 | dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
72 | dotnet_style_prefer_auto_properties = true:suggestion
73 | dotnet_style_prefer_conditional_expression_over_assignment = true:warning
74 | dotnet_style_prefer_conditional_expression_over_return = true:warning
75 | dotnet_style_prefer_compound_assignment = true:suggestion
76 | dotnet_style_prefer_simplified_interpolation = true:warning
77 | dotnet_style_prefer_simplified_boolean_expressions = true:warning
78 | dotnet_style_operator_placement_when_wrapping = end_of_line
79 |
80 | ### Null-checking preferences
81 | dotnet_style_coalesce_expression = true:suggestion
82 | dotnet_style_null_propagation = true:warning
83 | dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning
84 |
85 | ### Unnecessary code rules
86 | dotnet_code_quality_unused_parameters = all:warning
87 | dotnet_remove_unnecessary_suppression_exclusions = none
88 |
89 | ## C# style rules
90 | ### var preferences
91 | csharp_style_var_for_built_in_types = false:warning
92 | csharp_style_var_when_type_is_apparent = true:suggestion
93 | csharp_style_var_elsewhere = false:suggestion
94 | dotnet_diagnostic.IDE0008.severity = suggestion # Doesn't follow above values
95 |
96 | ### Expression-bodied members
97 | csharp_style_expression_bodied_methods = false
98 | csharp_style_expression_bodied_constructors = false:suggestion
99 | csharp_style_expression_bodied_operators = true:suggestion
100 | csharp_style_expression_bodied_properties = when_on_single_line:suggestion
101 | csharp_style_expression_bodied_indexers = when_on_single_line:suggestion
102 | csharp_style_expression_bodied_accessors = when_on_single_line:suggestion
103 | csharp_style_expression_bodied_lambdas = when_on_single_line:suggestion
104 | csharp_style_expression_bodied_local_functions = when_on_single_line:suggestion
105 |
106 | ### Pattern matching preferences
107 | csharp_style_pattern_matching_over_is_with_cast_check = true:warning
108 | csharp_style_pattern_matching_over_as_with_null_check = true:warning
109 | csharp_style_prefer_switch_expression = true:suggestion
110 | csharp_style_prefer_pattern_matching = true:suggestion
111 | csharp_style_prefer_not_pattern = true:warning
112 | csharp_style_prefer_null_check_over_type_check = true:suggestion
113 |
114 | ### Expression-level preferences
115 | csharp_style_inlined_variable_declaration = true:warning
116 | csharp_prefer_simple_default_expression = true:suggestion
117 | csharp_style_pattern_local_over_anonymous_function = true:warning
118 | csharp_style_deconstructed_variable_declaration = true:suggestion
119 | csharp_style_prefer_index_operator = true:warning
120 | csharp_style_prefer_range_operator = true:warning
121 | csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
122 | csharp_style_unused_value_assignment_preference = discard_variable:warning
123 | csharp_style_unused_value_expression_statement_preference = discard_variable:suggestion
124 | csharp_style_prefer_method_group_conversion = true:suggestion
125 | csharp_style_prefer_local_over_anonymous_function = true:suggestion
126 |
127 | ### Null-checking preferences
128 | csharp_style_throw_expression = true:warning
129 | csharp_style_conditional_delegate_call = true:warning
130 |
131 | ### Code-block preferences
132 | csharp_prefer_braces = true:warning
133 | dotnet_diagnostic.SA1503.severity = warning # Doesn't follow above value
134 | csharp_prefer_simple_using_statement = true:suggestion
135 | csharp_style_prefer_tuple_swap = true:suggestion
136 |
137 | ### 'using' directive preferences
138 | csharp_using_directive_placement = inside_namespace:warning
139 | dotnet_diagnostic.SA1200.severity = warning # Doesn't follow above value
140 |
141 | ### Modifier preferences
142 | csharp_prefer_static_local_function = true:warning
143 | csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:warning
144 |
145 | ### New C# features
146 | csharp_style_prefer_primary_constructors = true:suggestion
147 | csharp_style_prefer_utf8_string_literals = true:suggestion
148 | csharp_style_prefer_readonly_struct = true:suggestion
149 | csharp_style_prefer_readonly_struct_member = true:suggestion
150 |
151 | ## C# formatting rules
152 | ### New line preferences
153 | csharp_new_line_before_open_brace = methods,types
154 | csharp_new_line_before_else = false
155 | csharp_new_line_before_catch = false
156 | csharp_new_line_before_finally = false
157 | csharp_new_line_before_members_in_object_initializers = true
158 | csharp_new_line_before_members_in_anonymous_types = true
159 | csharp_new_line_between_query_expression_clauses = true
160 |
161 | ### Indentation preferences
162 | csharp_indent_case_contents = true
163 | csharp_indent_switch_labels = true
164 | csharp_indent_labels = one_less_than_current
165 | csharp_indent_block_contents = true
166 | csharp_indent_braces = false
167 | csharp_indent_case_contents_when_block = false
168 | csharp_style_namespace_declarations = file_scoped
169 |
170 | ### Spacing preferences
171 | csharp_space_after_cast = false
172 | csharp_space_after_keywords_in_control_flow_statements = true
173 | csharp_space_between_parentheses = false
174 | csharp_space_before_colon_in_inheritance_clause = true
175 | csharp_space_after_colon_in_inheritance_clause = true
176 | csharp_space_around_binary_operators = before_and_after
177 | csharp_space_between_method_declaration_parameter_list_parentheses = false
178 | csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
179 | csharp_space_between_method_declaration_name_and_open_parenthesis = false
180 | csharp_space_between_method_call_parameter_list_parentheses = false
181 | csharp_space_between_method_call_empty_parameter_list_parentheses = false
182 | csharp_space_between_method_call_name_and_opening_parenthesis = false
183 | csharp_space_after_comma = true
184 | csharp_space_before_comma = false
185 | csharp_space_after_dot = false
186 | csharp_space_before_dot = false
187 | csharp_space_after_semicolon_in_for_statement = true
188 | csharp_space_before_semicolon_in_for_statement = false
189 | csharp_space_around_declaration_statements = false
190 | csharp_space_before_open_square_brackets = false
191 | csharp_space_between_empty_square_brackets = false
192 | csharp_space_between_square_brackets = false
193 |
194 | ### Wrapping preferences
195 | csharp_preserve_single_line_statements = false
196 | csharp_preserve_single_line_blocks = true
197 |
198 | ### Top level statement
199 | csharp_style_prefer_top_level_statements = true:silent
200 |
201 | ## Naming styles rules
202 | dotnet_style_namespace_match_folder = true:warning
203 | dotnet_diagnostic.IDE1006.severity = warning
204 |
205 | dotnet_naming_rule.interface_should_be_begins_with_i.severity = warning
206 | dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
207 | dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
208 | dotnet_naming_style.begins_with_i.required_prefix = I
209 | dotnet_naming_style.begins_with_i.required_suffix =
210 | dotnet_naming_style.begins_with_i.word_separator =
211 | dotnet_naming_style.begins_with_i.capitalization = pascal_case
212 |
213 | dotnet_naming_rule.types_should_be_pascal_case.severity = warning
214 | dotnet_naming_rule.types_should_be_pascal_case.symbols = types
215 | dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
216 | dotnet_naming_style.pascal_case.required_prefix =
217 | dotnet_naming_style.pascal_case.required_suffix =
218 | dotnet_naming_style.pascal_case.word_separator =
219 | dotnet_naming_style.pascal_case.capitalization = pascal_case
220 |
221 | dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = warning
222 | dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
223 | dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
224 |
225 | ### Symbol specifications
226 | dotnet_naming_symbols.interface.applicable_kinds = interface
227 | dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
228 | dotnet_naming_symbols.interface.required_modifiers =
229 |
230 | dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
231 | dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
232 | dotnet_naming_symbols.types.required_modifiers =
233 |
234 | dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
235 | dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
236 | dotnet_naming_symbols.non_field_members.required_modifiers =
237 |
238 | ## Code analyzers
239 | ### .NET SDK
240 | dotnet_diagnostic.CA1303.severity = none # We don't translate exception and log messages from English
241 | dotnet_diagnostic.SA1025.severity = none # Allow spaces in comments to structure info
242 | dotnet_diagnostic.IDE0045.severity = suggestion # Simplify ifs
243 | dotnet_diagnostic.IDE0046.severity = suggestion # Simplify ifs
244 | dotnet_diagnostic.IDE0057.severity = suggestion # Slice can be simplified
245 |
246 | ### StyleCop
247 | dotnet_diagnostic.SA1101.severity = none # Do not force to prefix local calls with 'this'
248 | dotnet_diagnostic.SA1204.severity = suggestion # Static methods should be before non-static
249 | dotnet_diagnostic.SA1500.severity = none # Allow inline braces
250 | dotnet_diagnostic.SA1633.severity = none # No XML-format header in source files
251 |
252 | ### SonarAnalyzer
253 | dotnet_diagnostic.S1133.severity = suggestion # Remove deprecated code -.-' I know, some day
254 | dotnet_diagnostic.S1135.severity = suggestion # It's almost inevitable to have TODO but add bug ID
255 |
256 | # Special rules for test projects
257 | [src/*Tests/**]
258 | dotnet_diagnostic.CS1591.severity = none # Disable documentation
259 | dotnet_diagnostic.CA1001.severity = none # No need to implement IDisposable in test classes with cleanup.
260 | dotnet_diagnostic.CA1034.severity = none # Public types in test classes for testing implementations
261 | dotnet_diagnostic.CA1040.severity = none # Empty interfaces for testing
262 | dotnet_diagnostic.CA1062.severity = none # No need to validate args in test methods
263 | dotnet_diagnostic.CA1305.severity = none # No culture method for quick test code
264 | dotnet_diagnostic.CA1307.severity = none # No culture method for quick test code
265 | dotnet_diagnostic.SA0001.severity = none # Disable documentation
266 | dotnet_diagnostic.SA1600.severity = none # Disable documentation
267 | dotnet_diagnostic.SA1601.severity = none # Disable documentation
268 | dotnet_diagnostic.SA1602.severity = none # Disable documentation
269 | dotnet_diagnostic.SA1201.severity = none # Allow enums inside classes
270 | dotnet_diagnostic.S1144.severity = none # Remove unused setter
271 | dotnet_diagnostic.S2094.severity = none # Remove empty class
272 | dotnet_diagnostic.S2699.severity = none # Assert may be in helper methods
273 | dotnet_diagnostic.S3966.severity = none # Dispose twice to test implementation
274 | dotnet_code_quality_unused_parameters = all:none # Some test methods may not use all the source args
275 |
--------------------------------------------------------------------------------