Skip to content

Commit 8b5ed69

Browse files
Initial commit
0 parents  commit 8b5ed69

Some content is hidden

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

45 files changed

+2737
-0
lines changed

.editorconfig

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = LF
6+
indent_style = space
7+
indent_size = 4
8+
insert_final_newline = false
9+
trim_trailing_whitespace = true
10+
11+
[*.sln]
12+
indent_style = tab
13+
14+
[*.{csproj,vbproj,vcxproj,vcxproj.filters}]
15+
indent_size = 2
16+
17+
[*.{xml,config,props,targets,nuspec,ruleset}]
18+
indent_size = 2
19+
20+
[*.{yml,yaml}]
21+
indent_size = 2
22+
23+
[*.json]
24+
indent_size = 2
25+
26+
[*.md]
27+
trim_trailing_whitespace = false
28+
29+
[*.cs]
30+
# Prefer file scoped namespace declarations
31+
csharp_style_namespace_declarations = file_scoped:warning
32+
33+
# Sort using and Import directives with System.* appearing first
34+
dotnet_sort_system_directives_first = true
35+
dotnet_separate_import_directive_groups = false
36+
37+
# Avoid "this." and "Me." if not necessary
38+
dotnet_style_qualification_for_field = false:refactoring
39+
dotnet_style_qualification_for_property = false:refactoring
40+
dotnet_style_qualification_for_method = false:refactoring
41+
dotnet_style_qualification_for_event = false:refactoring
42+
43+
# Use language keywords instead of framework type names for type references
44+
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
45+
dotnet_style_predefined_type_for_member_access = true:suggestion
46+
47+
# Suggest more modern language features when available
48+
dotnet_style_object_initializer = true:suggestion
49+
dotnet_style_collection_initializer = true:suggestion
50+
dotnet_style_coalesce_expression = true:suggestion
51+
dotnet_style_null_propagation = true:suggestion
52+
dotnet_style_explicit_tuple_names = true:suggestion
53+
54+
# Non-private static fields are PascalCase
55+
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.severity = suggestion
56+
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.symbols = non_private_static_fields
57+
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.style = non_private_static_field_style
58+
dotnet_naming_symbols.non_private_static_fields.applicable_kinds = field
59+
dotnet_naming_symbols.non_private_static_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected
60+
dotnet_naming_symbols.non_private_static_fields.required_modifiers = static
61+
dotnet_naming_style.non_private_static_field_style.capitalization = pascal_case
62+
63+
# Non-private readonly fields are PascalCase
64+
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.severity = suggestion
65+
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.symbols = non_private_readonly_fields
66+
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.style = non_private_readonly_field_style
67+
dotnet_naming_symbols.non_private_readonly_fields.applicable_kinds = field
68+
dotnet_naming_symbols.non_private_readonly_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected
69+
dotnet_naming_symbols.non_private_readonly_fields.required_modifiers = readonly
70+
dotnet_naming_style.non_private_readonly_field_style.capitalization = pascal_case
71+
72+
# Constants are PascalCase
73+
dotnet_naming_rule.constants_should_be_pascal_case.severity = suggestion
74+
dotnet_naming_rule.constants_should_be_pascal_case.symbols = constants
75+
dotnet_naming_rule.constants_should_be_pascal_case.style = constant_style
76+
dotnet_naming_symbols.constants.applicable_kinds = field, local
77+
dotnet_naming_symbols.constants.required_modifiers = const
78+
dotnet_naming_style.constant_style.capitalization = pascal_case
79+
80+
# Instance fields are camelCase and start with _
81+
dotnet_naming_rule.instance_fields_should_be_camel_case.severity = suggestion
82+
dotnet_naming_rule.instance_fields_should_be_camel_case.symbols = instance_fields
83+
dotnet_naming_rule.instance_fields_should_be_camel_case.style = instance_field_style
84+
dotnet_naming_symbols.instance_fields.applicable_kinds = field
85+
dotnet_naming_style.instance_field_style.capitalization = camel_case
86+
dotnet_naming_style.instance_field_style.required_prefix = _
87+
88+
# Locals and parameters are camelCase
89+
dotnet_naming_rule.locals_should_be_camel_case.severity = suggestion
90+
dotnet_naming_rule.locals_should_be_camel_case.symbols = locals_and_parameters
91+
dotnet_naming_rule.locals_should_be_camel_case.style = camel_case_style
92+
dotnet_naming_symbols.locals_and_parameters.applicable_kinds = parameter, local
93+
dotnet_naming_style.camel_case_style.capitalization = camel_case
94+
95+
# Local functions are PascalCase
96+
dotnet_naming_rule.local_functions_should_be_pascal_case.severity = suggestion
97+
dotnet_naming_rule.local_functions_should_be_pascal_case.symbols = local_functions
98+
dotnet_naming_rule.local_functions_should_be_pascal_case.style = local_function_style
99+
dotnet_naming_symbols.local_functions.applicable_kinds = local_function
100+
dotnet_naming_style.local_function_style.capitalization = pascal_case
101+
102+
# By default, name items with PascalCase
103+
dotnet_naming_rule.members_should_be_pascal_case.severity = suggestion
104+
dotnet_naming_rule.members_should_be_pascal_case.symbols = all_members
105+
dotnet_naming_rule.members_should_be_pascal_case.style = pascal_case_style
106+
dotnet_naming_symbols.all_members.applicable_kinds = *
107+
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
108+
109+
# Newline settings
110+
csharp_new_line_before_open_brace = all
111+
csharp_new_line_before_else = true
112+
csharp_new_line_before_catch = true
113+
csharp_new_line_before_finally = true
114+
csharp_new_line_before_members_in_object_initializers = true
115+
csharp_new_line_before_members_in_anonymous_types = true
116+
csharp_new_line_between_query_expression_clauses = true
117+
118+
# Indentation preferences
119+
csharp_indent_block_contents = true
120+
csharp_indent_braces = false
121+
csharp_indent_case_contents = true
122+
csharp_indent_case_contents_when_block = true
123+
csharp_indent_switch_labels = true
124+
csharp_indent_labels = flush_left
125+
126+
# Prefer "var" everywhere
127+
csharp_style_var_for_built_in_types = true:suggestion
128+
csharp_style_var_when_type_is_apparent = true:suggestion
129+
csharp_style_var_elsewhere = true:suggestion
130+
131+
# Prefer method-like constructs to have a block body
132+
csharp_style_expression_bodied_methods = false:none
133+
csharp_style_expression_bodied_constructors = false:none
134+
csharp_style_expression_bodied_operators = false:none
135+
136+
# Prefer property-like constructs to have an expression-body
137+
csharp_style_expression_bodied_properties = true:none
138+
csharp_style_expression_bodied_indexers = true:none
139+
csharp_style_expression_bodied_accessors = true:none
140+
141+
# Suggest more modern language features when available
142+
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
143+
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
144+
csharp_style_inlined_variable_declaration = true:suggestion
145+
csharp_style_throw_expression = true:suggestion
146+
csharp_style_conditional_delegate_call = true:suggestion
147+
148+
# Space preferences
149+
csharp_space_after_cast = false
150+
csharp_space_after_colon_in_inheritance_clause = true
151+
csharp_space_after_comma = true
152+
csharp_space_after_dot = false
153+
csharp_space_after_keywords_in_control_flow_statements = true
154+
csharp_space_after_semicolon_in_for_statement = true
155+
csharp_space_around_binary_operators = before_and_after
156+
csharp_space_around_declaration_statements = do_not_ignore
157+
csharp_space_before_colon_in_inheritance_clause = true
158+
csharp_space_before_comma = false
159+
csharp_space_before_dot = false
160+
csharp_space_before_open_square_brackets = false
161+
csharp_space_before_semicolon_in_for_statement = false
162+
csharp_space_between_empty_square_brackets = false
163+
csharp_space_between_method_call_empty_parameter_list_parentheses = false
164+
csharp_space_between_method_call_name_and_opening_parenthesis = false
165+
csharp_space_between_method_call_parameter_list_parentheses = false
166+
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
167+
csharp_space_between_method_declaration_name_and_open_parenthesis = false
168+
csharp_space_between_method_declaration_parameter_list_parentheses = false
169+
csharp_space_between_parentheses = false
170+
csharp_space_between_square_brackets = false
171+
172+
# Blocks are allowed
173+
csharp_prefer_braces = true:silent
174+
csharp_preserve_single_line_blocks = true
175+
csharp_preserve_single_line_statements = true
176+
177+
# warning RS0037: PublicAPI.txt is missing '#nullable enable'
178+
dotnet_diagnostic.RS0037.severity = none

.gitattributes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
* text=auto
2+
3+
*.cs text eol=lf
4+
*.md text eol=lf

.github/workflows/ci.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
2+
name: Pull Request
3+
on: pull_request
4+
5+
env:
6+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
7+
DOTNET_CLI_TELEMETRY_OPTOUT: true
8+
9+
jobs:
10+
11+
###################################################
12+
# BUILD
13+
###################################################
14+
15+
build:
16+
name: Build
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v4
21+
with:
22+
fetch-depth: 0
23+
24+
- name: Setup .NET SDK
25+
uses: actions/setup-dotnet@v4
26+
with:
27+
dotnet-version: |
28+
6.0.x
29+
7.0.x
30+
8.0.x
31+
32+
- name: Build
33+
shell: bash
34+
run: |
35+
dotnet tool restore
36+
dotnet cake

.github/workflows/publish.yaml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
2+
name: Publish
3+
4+
on:
5+
push:
6+
tags:
7+
- '*'
8+
branches:
9+
- main
10+
11+
env:
12+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
13+
DOTNET_CLI_TELEMETRY_OPTOUT: true
14+
15+
jobs:
16+
17+
###################################################
18+
# PUBLISH
19+
###################################################
20+
21+
build:
22+
name: Publish NuGet Packages
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Checkout
26+
uses: actions/checkout@v4
27+
with:
28+
fetch-depth: 0
29+
30+
- name: Setup .NET SDK
31+
uses: actions/setup-dotnet@v4
32+
with:
33+
dotnet-version: |
34+
6.0.x
35+
7.0.x
36+
8.0.x
37+
38+
- name: Publish
39+
shell: bash
40+
run: |
41+
dotnet tool restore
42+
dotnet cake --target="publish" \
43+
--nuget-key="${{secrets.NUGET_API_KEY}}" \
44+
--github-key="${{secrets.GITHUB_TOKEN}}"

.gitignore

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Misc folders
2+
[Bb]in/
3+
[Oo]bj/
4+
[Tt]emp/
5+
[Pp]ackages/
6+
/.artifacts/
7+
/[Tt]ools/
8+
.idea
9+
.DS_Store
10+
11+
# Cakeup
12+
cakeup-x86_64-latest.exe
13+
14+
# .NET Core CLI
15+
/.dotnet/
16+
/.packages/
17+
dotnet-install.sh*
18+
*.lock.json
19+
20+
# Visual Studio
21+
.vs/
22+
.vscode/
23+
launchSettings.json
24+
*.sln.ide/
25+
26+
# Rider
27+
src/.idea/**/workspace.xml
28+
src/.idea/**/tasks.xml
29+
src/.idea/dictionaries
30+
src/.idea/**/dataSources/
31+
src/.idea/**/dataSources.ids
32+
src/.idea/**/dataSources.xml
33+
src/.idea/**/dataSources.local.xml
34+
src/.idea/**/sqlDataSources.xml
35+
src/.idea/**/dynamic.xml
36+
src/.idea/**/uiDesigner.xml
37+
38+
## Ignore Visual Studio temporary files, build results, and
39+
## files generated by popular Visual Studio add-ons.
40+
41+
# User-specific files
42+
*.suo
43+
*.user
44+
*.sln.docstates
45+
*.userprefs
46+
*.GhostDoc.xml
47+
*StyleCop.Cache
48+
49+
# Build results
50+
[Dd]ebug/
51+
[Rr]elease/
52+
x64/
53+
*_i.c
54+
*_p.c
55+
*.ilk
56+
*.meta
57+
*.obj
58+
*.pch
59+
*.pdb
60+
*.pgc
61+
*.pgd
62+
*.rsp
63+
*.sbr
64+
*.tlb
65+
*.tli
66+
*.tlh
67+
*.tmp
68+
*.log
69+
*.vspscc
70+
*.vssscc
71+
.builds
72+
73+
# Visual Studio profiler
74+
*.psess
75+
*.vsp
76+
*.vspx
77+
78+
# ReSharper is a .NET coding add-in
79+
_ReSharper*
80+
81+
# NCrunch
82+
.*crunch*.local.xml
83+
_NCrunch_*
84+
85+
# NuGet Packages Directory
86+
packages
87+
88+
# Windows
89+
Thumbs.db
90+
91+
*.received.*
92+
93+
node_modules

0 commit comments

Comments
 (0)