Skip to content

Commit f9c9e34

Browse files
authored
Merge pull request #4 from code-of-chaos/generator-rework
Rework: Use of Generators
2 parents e097ed0 + 91f0f76 commit f9c9e34

File tree

75 files changed

+2397
-1735
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+2397
-1735
lines changed

.editorconfig

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
[*]
2+
charset = utf-8-bom
3+
end_of_line = crlf
4+
trim_trailing_whitespace = false
5+
insert_final_newline = false
6+
indent_style = space
7+
indent_size = 4
8+
9+
# Microsoft .NET properties
10+
csharp_new_line_before_members_in_object_initializers = false
11+
csharp_new_line_before_open_brace = none
12+
csharp_preferred_modifier_order = internal, protected, public, sealed, file, new, private, override, static, required, readonly, abstract, extern, unsafe, volatile, async, virtual:suggestion
13+
csharp_style_prefer_utf8_string_literals = true:suggestion
14+
csharp_style_var_elsewhere = false:none
15+
csharp_style_var_for_built_in_types = false:suggestion
16+
dotnet_naming_rule.private_constants_rule.import_to_resharper = True
17+
dotnet_naming_rule.private_constants_rule.resharper_description = Constant fields (private)
18+
dotnet_naming_rule.private_constants_rule.resharper_guid = 236f7aa5-7b06-43ca-bf2a-9b31bfcff09a
19+
dotnet_naming_rule.private_constants_rule.severity = warning
20+
dotnet_naming_rule.private_constants_rule.style = upper_camel_case_style
21+
dotnet_naming_rule.private_constants_rule.symbols = private_constants_symbols
22+
dotnet_naming_rule.private_instance_fields_rule.import_to_resharper = True
23+
dotnet_naming_rule.private_instance_fields_rule.resharper_description = Instance fields (private)
24+
dotnet_naming_rule.private_instance_fields_rule.resharper_guid = 4a98fdf6-7d98-4f5a-afeb-ea44ad98c70c
25+
dotnet_naming_rule.private_instance_fields_rule.severity = warning
26+
dotnet_naming_rule.private_instance_fields_rule.style = lower_camel_case_style
27+
dotnet_naming_rule.private_instance_fields_rule.symbols = private_instance_fields_symbols
28+
dotnet_naming_rule.private_static_fields_rule.import_to_resharper = True
29+
dotnet_naming_rule.private_static_fields_rule.resharper_description = Static fields (private)
30+
dotnet_naming_rule.private_static_fields_rule.resharper_exclusive_prefixes_suffixes = true
31+
dotnet_naming_rule.private_static_fields_rule.resharper_guid = f9fce829-e6f4-4cb2-80f1-5497c44f51df
32+
dotnet_naming_rule.private_static_fields_rule.severity = warning
33+
dotnet_naming_rule.private_static_fields_rule.style = lower_camel_case_style
34+
dotnet_naming_rule.private_static_fields_rule.symbols = private_static_fields_symbols
35+
dotnet_naming_rule.private_static_readonly_rule.import_to_resharper = True
36+
dotnet_naming_rule.private_static_readonly_rule.resharper_description = Static readonly fields (private)
37+
dotnet_naming_rule.private_static_readonly_rule.resharper_guid = 15b5b1f1-457c-4ca6-b278-5615aedc07d3
38+
dotnet_naming_rule.private_static_readonly_rule.severity = warning
39+
dotnet_naming_rule.private_static_readonly_rule.style = upper_camel_case_style
40+
dotnet_naming_rule.private_static_readonly_rule.symbols = private_static_readonly_symbols
41+
dotnet_naming_rule.unity_serialized_field_rule.import_to_resharper = True
42+
dotnet_naming_rule.unity_serialized_field_rule.resharper_description = Unity serialized field
43+
dotnet_naming_rule.unity_serialized_field_rule.resharper_guid = 5f0fdb63-c892-4d2c-9324-15c80b22a7ef
44+
dotnet_naming_rule.unity_serialized_field_rule.severity = warning
45+
dotnet_naming_rule.unity_serialized_field_rule.style = lower_camel_case_style_1
46+
dotnet_naming_rule.unity_serialized_field_rule.symbols = unity_serialized_field_symbols
47+
dotnet_naming_style.lower_camel_case_style.capitalization = camel_case
48+
dotnet_naming_style.lower_camel_case_style.required_prefix = _
49+
dotnet_naming_style.lower_camel_case_style_1.capitalization = camel_case
50+
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case
51+
dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities = private
52+
dotnet_naming_symbols.private_constants_symbols.applicable_kinds = field
53+
dotnet_naming_symbols.private_constants_symbols.required_modifiers = const
54+
dotnet_naming_symbols.private_constants_symbols.resharper_applicable_kinds = constant_field
55+
dotnet_naming_symbols.private_constants_symbols.resharper_required_modifiers = any
56+
dotnet_naming_symbols.private_instance_fields_symbols.applicable_accessibilities = private
57+
dotnet_naming_symbols.private_instance_fields_symbols.applicable_kinds = field
58+
dotnet_naming_symbols.private_instance_fields_symbols.resharper_applicable_kinds = field, readonly_field
59+
dotnet_naming_symbols.private_instance_fields_symbols.resharper_required_modifiers = instance
60+
dotnet_naming_symbols.private_static_fields_symbols.applicable_accessibilities = private
61+
dotnet_naming_symbols.private_static_fields_symbols.applicable_kinds = field
62+
dotnet_naming_symbols.private_static_fields_symbols.required_modifiers = static
63+
dotnet_naming_symbols.private_static_fields_symbols.resharper_applicable_kinds = field
64+
dotnet_naming_symbols.private_static_fields_symbols.resharper_required_modifiers = static
65+
dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private
66+
dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field
67+
dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = readonly, static
68+
dotnet_naming_symbols.private_static_readonly_symbols.resharper_applicable_kinds = readonly_field
69+
dotnet_naming_symbols.private_static_readonly_symbols.resharper_required_modifiers = static
70+
dotnet_naming_symbols.unity_serialized_field_symbols.applicable_accessibilities = *
71+
dotnet_naming_symbols.unity_serialized_field_symbols.applicable_kinds =
72+
dotnet_naming_symbols.unity_serialized_field_symbols.resharper_applicable_kinds = unity_serialised_field
73+
dotnet_naming_symbols.unity_serialized_field_symbols.resharper_required_modifiers = instance
74+
dotnet_sort_system_directives_first = false
75+
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:none
76+
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:none
77+
dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:none
78+
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
79+
dotnet_style_predefined_type_for_member_access = true:suggestion
80+
dotnet_style_qualification_for_event = false:suggestion
81+
dotnet_style_qualification_for_field = false:suggestion
82+
dotnet_style_qualification_for_method = false:suggestion
83+
dotnet_style_qualification_for_property = false:suggestion
84+
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
85+
86+
# ReSharper properties
87+
resharper_align_multiline_binary_expressions_chain = false
88+
resharper_align_multiline_statement_conditions = false
89+
resharper_arguments_anonymous_function = named
90+
resharper_arguments_skip_single = true
91+
resharper_autodetect_indent_settings = true
92+
resharper_blank_lines_after_block_statements = 0
93+
resharper_blank_lines_after_control_transfer_statements = 1
94+
resharper_blank_lines_after_file_scoped_namespace_directive = 0
95+
resharper_blank_lines_after_start_comment = 0
96+
resharper_blank_lines_around_block_case_section = 1
97+
resharper_blank_lines_around_property = 0
98+
resharper_braces_for_foreach = required_for_multiline_statement
99+
resharper_braces_for_ifelse = required_for_multiline_statement
100+
resharper_braces_redundant = false
101+
resharper_csharp_blank_lines_around_region = 0
102+
resharper_csharp_blank_lines_inside_region = 0
103+
resharper_csharp_empty_block_style = together
104+
resharper_csharp_insert_final_newline = true
105+
resharper_csharp_max_line_length = 1445
106+
resharper_csharp_remove_blank_lines_near_braces_in_code = false
107+
resharper_csharp_remove_blank_lines_near_braces_in_declarations = false
108+
resharper_csharp_space_around_alias_eq = false
109+
resharper_csharp_stick_comment = false
110+
resharper_csharp_wrap_arguments_style = chop_if_long
111+
resharper_csharp_wrap_before_binary_opsign = true
112+
resharper_csharp_wrap_extends_list_style = chop_if_long
113+
resharper_formatter_off_tag = @formatter:off
114+
resharper_formatter_on_tag = @formatter:on
115+
resharper_formatter_tags_enabled = true
116+
resharper_indent_inside_namespace = false
117+
resharper_indent_pars = outside_and_inside
118+
resharper_indent_preprocessor_if = usual_indent
119+
resharper_indent_preprocessor_other = do_not_change
120+
resharper_indent_raw_literal_string = indent
121+
resharper_instance_members_qualify_declared_in =
122+
resharper_keep_existing_attribute_arrangement = true
123+
resharper_keep_existing_declaration_block_arrangement = true
124+
resharper_keep_existing_embedded_block_arrangement = true
125+
resharper_max_attribute_length_for_same_line = 70
126+
resharper_method_or_operator_body = expression_body
127+
resharper_parentheses_redundancy_style = remove
128+
resharper_place_accessorholder_attribute_on_same_line = true
129+
resharper_place_accessor_attribute_on_same_line = true
130+
resharper_place_expr_accessor_on_single_line = true
131+
resharper_place_expr_property_on_single_line = true
132+
resharper_place_record_field_attribute_on_same_line = true
133+
resharper_place_simple_accessor_on_single_line = false
134+
resharper_place_simple_anonymousmethod_on_single_line = false
135+
resharper_place_simple_embedded_statement_on_same_line = true
136+
resharper_place_simple_initializer_on_single_line = false
137+
resharper_qualified_using_at_nested_scope = true
138+
resharper_space_within_empty_braces = false
139+
resharper_use_indent_from_vs = false
140+
resharper_wrap_before_primary_constructor_declaration_rpar = true
141+
resharper_wrap_chained_binary_expressions = chop_if_long
142+
resharper_wrap_list_pattern = chop_always
143+
resharper_wrap_object_and_collection_initializer_style = chop_always
144+
145+
# ReSharper inspection severities
146+
resharper_arrange_redundant_parentheses_highlighting = hint
147+
resharper_arrange_this_qualifier_highlighting = hint
148+
resharper_arrange_type_member_modifiers_highlighting = hint
149+
resharper_arrange_type_modifiers_highlighting = hint
150+
resharper_built_in_type_reference_style_for_member_access_highlighting = hint
151+
resharper_built_in_type_reference_style_highlighting = hint
152+
resharper_mvc_action_not_resolved_highlighting = warning
153+
resharper_mvc_area_not_resolved_highlighting = warning
154+
resharper_mvc_controller_not_resolved_highlighting = warning
155+
resharper_mvc_masterpage_not_resolved_highlighting = warning
156+
resharper_mvc_partial_view_not_resolved_highlighting = warning
157+
resharper_mvc_template_not_resolved_highlighting = warning
158+
resharper_mvc_view_component_not_resolved_highlighting = warning
159+
resharper_mvc_view_component_view_not_resolved_highlighting = warning
160+
resharper_mvc_view_not_resolved_highlighting = warning
161+
resharper_razor_assembly_not_resolved_highlighting = warning
162+
resharper_redundant_base_qualifier_highlighting = warning
163+
resharper_suggest_var_or_type_built_in_types_highlighting = hint
164+
resharper_suggest_var_or_type_elsewhere_highlighting = hint
165+
resharper_suggest_var_or_type_simple_types_highlighting = hint
166+
resharper_web_config_module_not_resolved_highlighting = warning
167+
resharper_web_config_type_not_resolved_highlighting = warning
168+
resharper_web_config_wrong_module_highlighting = warning
169+
170+
[{*.har,*.jsb2,*.jsb3,*.json,*.jsonc,*.postman_collection,*.postman_collection.json,*.postman_environment,*.postman_environment.json,.babelrc,.eslintrc,.prettierrc,.stylelintrc,.ws-context,jest.config}]
171+
indent_style = space
172+
indent_size = 2
173+
174+
[*.{appxmanifest,asax,ascx,aspx,axaml,blockshader,build,c,c++,c++m,cc,ccm,cginc,compute,cp,cpp,cppm,cs,cshtml,cu,cuh,cxx,cxxm,dtd,fs,fsi,fsscript,fsx,fx,fxh,h,h++,hh,hlsl,hlsli,hlslinc,hp,hpp,hxx,icc,inc,inl,ino,ipp,ixx,master,ml,mli,mpp,mq4,mq5,mqh,mxx,nuspec,paml,razor,resw,resx,shader,shaderFoundry,skin,tcc,tpp,urtshader,usf,ush,uxml,vb,xaml,xamlx,xoml,xsd}]
175+
indent_style = space
176+
indent_size = 4
177+
tab_width = 4

.github/workflows/release.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,17 @@ jobs:
2222

2323
- name: Build
2424
run: dotnet build CodeOfChaos.CliArgsParser.sln --configuration Release --no-restore
25+
26+
# Ensure that the tests must pass
27+
# The job will fail automatically if any test fails because `dotnet test` exits with a non-zero code
28+
- name: Run tests
29+
run: dotnet run -c Release
30+
working-directory: "tests/Tests.CodeOfChaos.CliArgsParser"
2531

2632
- name: Publish to NuGet
2733
env:
2834
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
2935
run: |
3036
dotnet nuget push src/CodeOfChaos.CliArgsParser/bin/Release/*.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json --skip-duplicate
31-
dotnet nuget push src/CodeOfChaos.CliArgsParser.Library/bin/Release/*.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json --skip-duplicate
37+
dotnet nuget push src/CodeOfChaos.CliArgsParser.Library/bin/Release/*.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json --skip-duplicate
38+
dotnet nuget push src/CodeOfChaos.CliArgsParser.Generators/bin/Release/*.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json --skip-duplicate

CodeOfChaos.CliArgsParser.sln

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
Microsoft Visual Studio Solution File, Format Version 12.00
33
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeOfChaos.CliArgsParser.Library", "src\CodeOfChaos.CliArgsParser.Library\CodeOfChaos.CliArgsParser.Library.csproj", "{64B26DED-68C3-47FF-B409-1C8FAD4F9176}"
44
EndProject
5-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.CodeOfChaos.CliArgsParser.Library", "tests\Tests.CodeOfChaos.CliArgsParser.Library\Tests.CodeOfChaos.CliArgsParser.Library.csproj", "{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}"
6-
EndProject
75
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{197E72AD-DEAB-4350-AFC3-A3BB38720BF5}"
86
EndProject
97
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8DD280D4-1E14-4D5E-AFE6-58DD8F079DCC}"
@@ -14,7 +12,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools.CodeOfChaos.CliArgsPa
1412
EndProject
1513
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeOfChaos.CliArgsParser", "src\CodeOfChaos.CliArgsParser\CodeOfChaos.CliArgsParser.csproj", "{1C9D7DD6-A936-4D08-ADB2-46E32FCB28B9}"
1614
EndProject
17-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeOfChaos.CliArgsParser.Contracts", "src\CodeOfChaos.CliArgsParser.Contracts\CodeOfChaos.CliArgsParser.Contracts.csproj", "{D3A8406F-3E09-47BC-A895-B95C3CBDBC59}"
15+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "example", "example", "{91B440FF-0570-4FF5-9AE9-5DD272DFD139}"
16+
EndProject
17+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeOfChaos.CliArgsParser.Generators", "src\CodeOfChaos.CliArgsParser.Generators\CodeOfChaos.CliArgsParser.Generators.csproj", "{80E6494A-B679-4DDA-877C-F4639D4C60A8}"
18+
EndProject
19+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeOfChaos.CliArgsParser.Generators.Sample", "src\CodeOfChaos.CliArgsParser.Generators.Sample\CodeOfChaos.CliArgsParser.Generators.Sample.csproj", "{5791637A-68E9-4B82-9C2C-E295D0C3E94C}"
20+
EndProject
21+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.CodeOfChaos.CliArgsParser", "tests\Tests.CodeOfChaos.CliArgsParser\Tests.CodeOfChaos.CliArgsParser.csproj", "{181DA4AF-50BA-4C90-B678-EE394B22BFED}"
1822
EndProject
1923
Global
2024
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -26,10 +30,6 @@ Global
2630
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Debug|Any CPU.Build.0 = Debug|Any CPU
2731
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Release|Any CPU.ActiveCfg = Release|Any CPU
2832
{64B26DED-68C3-47FF-B409-1C8FAD4F9176}.Release|Any CPU.Build.0 = Release|Any CPU
29-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
30-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
31-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
32-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B}.Release|Any CPU.Build.0 = Release|Any CPU
3333
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3434
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
3535
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -38,16 +38,25 @@ Global
3838
{1C9D7DD6-A936-4D08-ADB2-46E32FCB28B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
3939
{1C9D7DD6-A936-4D08-ADB2-46E32FCB28B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
4040
{1C9D7DD6-A936-4D08-ADB2-46E32FCB28B9}.Release|Any CPU.Build.0 = Release|Any CPU
41-
{D3A8406F-3E09-47BC-A895-B95C3CBDBC59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42-
{D3A8406F-3E09-47BC-A895-B95C3CBDBC59}.Debug|Any CPU.Build.0 = Debug|Any CPU
43-
{D3A8406F-3E09-47BC-A895-B95C3CBDBC59}.Release|Any CPU.ActiveCfg = Release|Any CPU
44-
{D3A8406F-3E09-47BC-A895-B95C3CBDBC59}.Release|Any CPU.Build.0 = Release|Any CPU
41+
{80E6494A-B679-4DDA-877C-F4639D4C60A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42+
{80E6494A-B679-4DDA-877C-F4639D4C60A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
43+
{80E6494A-B679-4DDA-877C-F4639D4C60A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
44+
{80E6494A-B679-4DDA-877C-F4639D4C60A8}.Release|Any CPU.Build.0 = Release|Any CPU
45+
{5791637A-68E9-4B82-9C2C-E295D0C3E94C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
46+
{5791637A-68E9-4B82-9C2C-E295D0C3E94C}.Debug|Any CPU.Build.0 = Debug|Any CPU
47+
{5791637A-68E9-4B82-9C2C-E295D0C3E94C}.Release|Any CPU.ActiveCfg = Release|Any CPU
48+
{5791637A-68E9-4B82-9C2C-E295D0C3E94C}.Release|Any CPU.Build.0 = Release|Any CPU
49+
{181DA4AF-50BA-4C90-B678-EE394B22BFED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
50+
{181DA4AF-50BA-4C90-B678-EE394B22BFED}.Debug|Any CPU.Build.0 = Debug|Any CPU
51+
{181DA4AF-50BA-4C90-B678-EE394B22BFED}.Release|Any CPU.ActiveCfg = Release|Any CPU
52+
{181DA4AF-50BA-4C90-B678-EE394B22BFED}.Release|Any CPU.Build.0 = Release|Any CPU
4553
EndGlobalSection
4654
GlobalSection(NestedProjects) = preSolution
47-
{26284571-0E09-4BAF-8C2B-DF87DCC1BA0B} = {8DD280D4-1E14-4D5E-AFE6-58DD8F079DCC}
4855
{64B26DED-68C3-47FF-B409-1C8FAD4F9176} = {197E72AD-DEAB-4350-AFC3-A3BB38720BF5}
4956
{ADEADD97-0AFA-4D9E-970B-9FFB932949B3} = {AF1A203C-6EF1-440E-BB3C-55B1DBFE9C19}
5057
{1C9D7DD6-A936-4D08-ADB2-46E32FCB28B9} = {197E72AD-DEAB-4350-AFC3-A3BB38720BF5}
51-
{D3A8406F-3E09-47BC-A895-B95C3CBDBC59} = {197E72AD-DEAB-4350-AFC3-A3BB38720BF5}
58+
{80E6494A-B679-4DDA-877C-F4639D4C60A8} = {197E72AD-DEAB-4350-AFC3-A3BB38720BF5}
59+
{5791637A-68E9-4B82-9C2C-E295D0C3E94C} = {91B440FF-0570-4FF5-9AE9-5DD272DFD139}
60+
{181DA4AF-50BA-4C90-B678-EE394B22BFED} = {8DD280D4-1E14-4D5E-AFE6-58DD8F079DCC}
5261
EndGlobalSection
5362
EndGlobal

0 commit comments

Comments
 (0)