Compare commits
6 Commits
0d554c4df7
...
9eae6c0474
Author | SHA1 | Date | |
---|---|---|---|
9eae6c0474 | |||
e6935d8f3a | |||
befaae16c5 | |||
c13a9525ba | |||
018273bb3a | |||
a3bfe27fe8 |
249
.gitattributes
vendored
Normal file
249
.gitattributes
vendored
Normal file
@ -0,0 +1,249 @@
|
||||
*.3ds filter=lfs diff=lfs merge=lfs -text
|
||||
*.3g2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.3gp filter=lfs diff=lfs merge=lfs -text
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.a filter=lfs diff=lfs merge=lfs -text
|
||||
*.aac filter=lfs diff=lfs merge=lfs -text
|
||||
*.adp filter=lfs diff=lfs merge=lfs -text
|
||||
*.ai filter=lfs diff=lfs merge=lfs -text
|
||||
*.aif filter=lfs diff=lfs merge=lfs -text
|
||||
*.aiff filter=lfs diff=lfs merge=lfs -text
|
||||
*.alz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ape filter=lfs diff=lfs merge=lfs -text
|
||||
*.apk filter=lfs diff=lfs merge=lfs -text
|
||||
*.ar filter=lfs diff=lfs merge=lfs -text
|
||||
*.arj filter=lfs diff=lfs merge=lfs -text
|
||||
*.asf filter=lfs diff=lfs merge=lfs -text
|
||||
*.au filter=lfs diff=lfs merge=lfs -text
|
||||
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||
*.bak filter=lfs diff=lfs merge=lfs -text
|
||||
*.baml filter=lfs diff=lfs merge=lfs -text
|
||||
*.bh filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bk filter=lfs diff=lfs merge=lfs -text
|
||||
*.bmp filter=lfs diff=lfs merge=lfs -text
|
||||
*.BMP filter=lfs diff=lfs merge=lfs -text
|
||||
*.btif filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.bzip2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.cab filter=lfs diff=lfs merge=lfs -text
|
||||
*.caf filter=lfs diff=lfs merge=lfs -text
|
||||
*.cgm filter=lfs diff=lfs merge=lfs -text
|
||||
*.class filter=lfs diff=lfs merge=lfs -text
|
||||
*.cmx filter=lfs diff=lfs merge=lfs -text
|
||||
*.cpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.cr2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.csv filter=lfs diff=lfs merge=lfs -text
|
||||
*.cur filter=lfs diff=lfs merge=lfs -text
|
||||
*.dat filter=lfs diff=lfs merge=lfs -text
|
||||
*.dcm filter=lfs diff=lfs merge=lfs -text
|
||||
*.deb filter=lfs diff=lfs merge=lfs -text
|
||||
*.dex filter=lfs diff=lfs merge=lfs -text
|
||||
*.djvu filter=lfs diff=lfs merge=lfs -text
|
||||
*.dll filter=lfs diff=lfs merge=lfs -text
|
||||
*.dmg filter=lfs diff=lfs merge=lfs -text
|
||||
*.dng filter=lfs diff=lfs merge=lfs -text
|
||||
*.doc filter=lfs diff=lfs merge=lfs -text
|
||||
*.docm filter=lfs diff=lfs merge=lfs -text
|
||||
*.docx filter=lfs diff=lfs merge=lfs -text
|
||||
*.dot filter=lfs diff=lfs merge=lfs -text
|
||||
*.dotm filter=lfs diff=lfs merge=lfs -text
|
||||
*.dra filter=lfs diff=lfs merge=lfs -text
|
||||
*.DS_Store filter=lfs diff=lfs merge=lfs -text
|
||||
*.dsk filter=lfs diff=lfs merge=lfs -text
|
||||
*.dts filter=lfs diff=lfs merge=lfs -text
|
||||
*.dtshd filter=lfs diff=lfs merge=lfs -text
|
||||
*.dvb filter=lfs diff=lfs merge=lfs -text
|
||||
*.dwg filter=lfs diff=lfs merge=lfs -text
|
||||
*.dxf filter=lfs diff=lfs merge=lfs -text
|
||||
*.ecelp4800 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ecelp7470 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ecelp9600 filter=lfs diff=lfs merge=lfs -text
|
||||
*.egg filter=lfs diff=lfs merge=lfs -text
|
||||
*.eol filter=lfs diff=lfs merge=lfs -text
|
||||
*.eot filter=lfs diff=lfs merge=lfs -text
|
||||
*.epub filter=lfs diff=lfs merge=lfs -text
|
||||
*.exe filter=lfs diff=lfs merge=lfs -text
|
||||
*.f4v filter=lfs diff=lfs merge=lfs -text
|
||||
*.fbs filter=lfs diff=lfs merge=lfs -text
|
||||
*.fh filter=lfs diff=lfs merge=lfs -text
|
||||
*.fla filter=lfs diff=lfs merge=lfs -text
|
||||
*.flac filter=lfs diff=lfs merge=lfs -text
|
||||
*.fli filter=lfs diff=lfs merge=lfs -text
|
||||
*.flv filter=lfs diff=lfs merge=lfs -text
|
||||
*.fpx filter=lfs diff=lfs merge=lfs -text
|
||||
*.fst filter=lfs diff=lfs merge=lfs -text
|
||||
*.fvt filter=lfs diff=lfs merge=lfs -text
|
||||
*.g3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gif filter=lfs diff=lfs merge=lfs -text
|
||||
*.GIF filter=lfs diff=lfs merge=lfs -text
|
||||
*.graffle filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gzip filter=lfs diff=lfs merge=lfs -text
|
||||
*.h261 filter=lfs diff=lfs merge=lfs -text
|
||||
*.h263 filter=lfs diff=lfs merge=lfs -text
|
||||
*.h264 filter=lfs diff=lfs merge=lfs -text
|
||||
*.icns filter=lfs diff=lfs merge=lfs -text
|
||||
*.ico filter=lfs diff=lfs merge=lfs -text
|
||||
*.ief filter=lfs diff=lfs merge=lfs -text
|
||||
*.img filter=lfs diff=lfs merge=lfs -text
|
||||
*.ipa filter=lfs diff=lfs merge=lfs -text
|
||||
*.iso filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPEG filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.JPG filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpgv filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.jxr filter=lfs diff=lfs merge=lfs -text
|
||||
*.key filter=lfs diff=lfs merge=lfs -text
|
||||
*.ktx filter=lfs diff=lfs merge=lfs -text
|
||||
*.lha filter=lfs diff=lfs merge=lfs -text
|
||||
*.lib filter=lfs diff=lfs merge=lfs -text
|
||||
*.lvp filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzh filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzo filter=lfs diff=lfs merge=lfs -text
|
||||
*.m3u filter=lfs diff=lfs merge=lfs -text
|
||||
*.m4a filter=lfs diff=lfs merge=lfs -text
|
||||
*.m4v filter=lfs diff=lfs merge=lfs -text
|
||||
*.mar filter=lfs diff=lfs merge=lfs -text
|
||||
*.mdi filter=lfs diff=lfs merge=lfs -text
|
||||
*.mht filter=lfs diff=lfs merge=lfs -text
|
||||
*.mid filter=lfs diff=lfs merge=lfs -text
|
||||
*.midi filter=lfs diff=lfs merge=lfs -text
|
||||
*.mj2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.mka filter=lfs diff=lfs merge=lfs -text
|
||||
*.mkv filter=lfs diff=lfs merge=lfs -text
|
||||
*.mmr filter=lfs diff=lfs merge=lfs -text
|
||||
*.mng filter=lfs diff=lfs merge=lfs -text
|
||||
*.mobi filter=lfs diff=lfs merge=lfs -text
|
||||
*.mov filter=lfs diff=lfs merge=lfs -text
|
||||
*.movie filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp4a filter=lfs diff=lfs merge=lfs -text
|
||||
*.mpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.mpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.mpga filter=lfs diff=lfs merge=lfs -text
|
||||
*.mxu filter=lfs diff=lfs merge=lfs -text
|
||||
*.nef filter=lfs diff=lfs merge=lfs -text
|
||||
*.npx filter=lfs diff=lfs merge=lfs -text
|
||||
*.numbers filter=lfs diff=lfs merge=lfs -text
|
||||
*.o filter=lfs diff=lfs merge=lfs -text
|
||||
*.oga filter=lfs diff=lfs merge=lfs -text
|
||||
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||
*.ogv filter=lfs diff=lfs merge=lfs -text
|
||||
*.otf filter=lfs diff=lfs merge=lfs -text
|
||||
*.pages filter=lfs diff=lfs merge=lfs -text
|
||||
*.pbm filter=lfs diff=lfs merge=lfs -text
|
||||
*.pcx filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdb filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.pea filter=lfs diff=lfs merge=lfs -text
|
||||
*.pgm filter=lfs diff=lfs merge=lfs -text
|
||||
*.pic filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.PNG filter=lfs diff=lfs merge=lfs -text
|
||||
*.pnm filter=lfs diff=lfs merge=lfs -text
|
||||
*.pot filter=lfs diff=lfs merge=lfs -text
|
||||
*.potm filter=lfs diff=lfs merge=lfs -text
|
||||
*.potx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppa filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppam filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppm filter=lfs diff=lfs merge=lfs -text
|
||||
*.pps filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppsm filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppsx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ppt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pptm filter=lfs diff=lfs merge=lfs -text
|
||||
*.pptx filter=lfs diff=lfs merge=lfs -text
|
||||
*.psd filter=lfs diff=lfs merge=lfs -text
|
||||
*.pya filter=lfs diff=lfs merge=lfs -text
|
||||
*.pyc filter=lfs diff=lfs merge=lfs -text
|
||||
*.pyo filter=lfs diff=lfs merge=lfs -text
|
||||
*.pyv filter=lfs diff=lfs merge=lfs -text
|
||||
*.qt filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.ras filter=lfs diff=lfs merge=lfs -text
|
||||
*.raw filter=lfs diff=lfs merge=lfs -text
|
||||
*.resources filter=lfs diff=lfs merge=lfs -text
|
||||
*.rgb filter=lfs diff=lfs merge=lfs -text
|
||||
*.rip filter=lfs diff=lfs merge=lfs -text
|
||||
*.rlc filter=lfs diff=lfs merge=lfs -text
|
||||
*.rmf filter=lfs diff=lfs merge=lfs -text
|
||||
*.rmvb filter=lfs diff=lfs merge=lfs -text
|
||||
*.rtf filter=lfs diff=lfs merge=lfs -text
|
||||
*.rz filter=lfs diff=lfs merge=lfs -text
|
||||
*.s3m filter=lfs diff=lfs merge=lfs -text
|
||||
*.s7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.scpt filter=lfs diff=lfs merge=lfs -text
|
||||
*.sgi filter=lfs diff=lfs merge=lfs -text
|
||||
*.shar filter=lfs diff=lfs merge=lfs -text
|
||||
*.sil filter=lfs diff=lfs merge=lfs -text
|
||||
*.sketch filter=lfs diff=lfs merge=lfs -text
|
||||
*.slk filter=lfs diff=lfs merge=lfs -text
|
||||
*.smv filter=lfs diff=lfs merge=lfs -text
|
||||
*.so filter=lfs diff=lfs merge=lfs -text
|
||||
*.sub filter=lfs diff=lfs merge=lfs -text
|
||||
*.swf filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tga filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.thmx filter=lfs diff=lfs merge=lfs -text
|
||||
*.tif filter=lfs diff=lfs merge=lfs -text
|
||||
*.tiff filter=lfs diff=lfs merge=lfs -text
|
||||
*.tlz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttc filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.udf filter=lfs diff=lfs merge=lfs -text
|
||||
*.uvh filter=lfs diff=lfs merge=lfs -text
|
||||
*.uvi filter=lfs diff=lfs merge=lfs -text
|
||||
*.uvm filter=lfs diff=lfs merge=lfs -text
|
||||
*.uvp filter=lfs diff=lfs merge=lfs -text
|
||||
*.uvs filter=lfs diff=lfs merge=lfs -text
|
||||
*.uvu filter=lfs diff=lfs merge=lfs -text
|
||||
*.viv filter=lfs diff=lfs merge=lfs -text
|
||||
*.vob filter=lfs diff=lfs merge=lfs -text
|
||||
*.war filter=lfs diff=lfs merge=lfs -text
|
||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||
*.wax filter=lfs diff=lfs merge=lfs -text
|
||||
*.wbmp filter=lfs diff=lfs merge=lfs -text
|
||||
*.wdp filter=lfs diff=lfs merge=lfs -text
|
||||
*.weba filter=lfs diff=lfs merge=lfs -text
|
||||
*.webm filter=lfs diff=lfs merge=lfs -text
|
||||
*.webp filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.wim filter=lfs diff=lfs merge=lfs -text
|
||||
*.wm filter=lfs diff=lfs merge=lfs -text
|
||||
*.wma filter=lfs diff=lfs merge=lfs -text
|
||||
*.wmv filter=lfs diff=lfs merge=lfs -text
|
||||
*.wmx filter=lfs diff=lfs merge=lfs -text
|
||||
*.woff filter=lfs diff=lfs merge=lfs -text
|
||||
*.woff2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.wvx filter=lfs diff=lfs merge=lfs -text
|
||||
*.xbm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xif filter=lfs diff=lfs merge=lfs -text
|
||||
*.xla filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlam filter=lfs diff=lfs merge=lfs -text
|
||||
*.xls filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlsb filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlsm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlt filter=lfs diff=lfs merge=lfs -text
|
||||
*.xltm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xltx filter=lfs diff=lfs merge=lfs -text
|
||||
*.xm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xmind filter=lfs diff=lfs merge=lfs -text
|
||||
*.xpi filter=lfs diff=lfs merge=lfs -text
|
||||
*.xpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.xwd filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.z filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zipx filter=lfs diff=lfs merge=lfs -text
|
155
.globalconfig
Normal file
155
.globalconfig
Normal file
@ -0,0 +1,155 @@
|
||||
is_global = true
|
||||
|
||||
dotnet_diagnostic.SA1101.severity = none
|
||||
|
||||
# Organize usings
|
||||
dotnet_sort_system_directives_first = true
|
||||
dotnet_separate_import_directive_groups = true
|
||||
csharp_using_directive_placement = inside_namespace:suggestion
|
||||
csharp_prefer_simple_using_statement = true:suggestion
|
||||
csharp_style_namespace_declarations = file_scoped:warning
|
||||
# this. preferences
|
||||
dotnet_style_qualification_for_field = false:none
|
||||
dotnet_style_qualification_for_property = false:none
|
||||
dotnet_style_qualification_for_method = false:none
|
||||
dotnet_style_qualification_for_event = false:none
|
||||
# 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 = for_non_interface_members:suggestion
|
||||
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:suggestion
|
||||
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:suggestion
|
||||
dotnet_style_prefer_conditional_expression_over_return = true:suggestion
|
||||
###############################
|
||||
# Naming Conventions #
|
||||
###############################
|
||||
# Style Definitions
|
||||
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
|
||||
dotnet_naming_rule.private_instance_fields_rule.style = lower_camel_case_style
|
||||
dotnet_naming_rule.private_static_fields_rule.style = lower_camel_case_style
|
||||
# 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# Coding Conventions #
|
||||
###############################
|
||||
# var preferences
|
||||
csharp_style_var_for_built_in_types = true:suggestion
|
||||
csharp_style_var_when_type_is_apparent = true:suggestion
|
||||
csharp_style_var_elsewhere = true:suggestion
|
||||
# Expression-bodied members
|
||||
csharp_style_expression_bodied_methods = when_on_single_line :suggestion
|
||||
csharp_style_expression_bodied_constructors = when_on_single_line :suggestion
|
||||
csharp_style_expression_bodied_operators = when_on_single_line :suggestion
|
||||
csharp_style_expression_bodied_properties = when_on_single_line :suggestion
|
||||
csharp_style_expression_bodied_indexers = when_on_single_line :suggestion
|
||||
csharp_style_expression_bodied_accessors = when_on_single_line :suggestion
|
||||
csharp_style_expression_bodied_lambdas = when_on_single_line :suggestion
|
||||
csharp_style_expression_bodied_local_functions = when_on_single_line :suggestion
|
||||
# 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:none
|
||||
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
|
||||
# Unused value preferences
|
||||
csharp_style_unused_value_expression_statement_preference = discard_variable:none
|
||||
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
|
||||
## Index and Range preferences
|
||||
csharp_style_prefer_index_operator = true:suggestion
|
||||
csharp_style_prefer_range_operator = true:suggestion
|
||||
csharp_prefer_static_local_function = true:suggestion
|
||||
csharp_style_prefer_switch_expression = 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
|
||||
csharp_indent_block_contents = true
|
||||
csharp_indent_braces = false
|
||||
csharp_indent_case_contents_when_block = true
|
||||
# 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
|
||||
csharp_space_between_method_declaration_name_and_open_parenthesis = false
|
||||
csharp_space_after_comma = true
|
||||
csharp_space_before_comma = false
|
||||
csharp_space_after_dot = false
|
||||
csharp_space_before_dot = false
|
||||
csharp_space_after_semicolon_in_for_statement = true
|
||||
csharp_space_before_semicolon_in_for_statement = false
|
||||
csharp_space_around_declaration_statements = false
|
||||
csharp_space_before_open_square_brackets = false
|
||||
csharp_space_between_empty_square_brackets = false
|
||||
csharp_space_between_square_brackets = false
|
||||
# Wrapping preferences
|
||||
csharp_preserve_single_line_statements = true
|
||||
csharp_preserve_single_line_blocks = true
|
||||
###############################
|
||||
# VB Coding Conventions #
|
||||
###############################
|
||||
# Modifier preferences
|
||||
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion
|
||||
|
||||
|
||||
###############################
|
||||
# Extra Rules #
|
||||
###############################
|
||||
|
||||
# dotnet_naming_rule.private_constants_rule.severity = warning
|
||||
# dotnet_naming_rule.private_constants_rule.style = upper_camel_case_style
|
||||
# dotnet_naming_rule.private_constants_rule.symbols = private_constants_symbols
|
||||
# dotnet_naming_rule.private_instance_fields_rule.severity = warning
|
||||
dotnet_naming_rule.private_instance_fields_rule.style = lower_camel_case_style
|
||||
# dotnet_naming_rule.private_instance_fields_rule.symbols = private_instance_fields_symbols
|
||||
# dotnet_naming_rule.private_static_fields_rule.severity = warning
|
||||
dotnet_naming_rule.private_static_fields_rule.style = lower_camel_case_style
|
||||
# dotnet_naming_rule.private_static_fields_rule.symbols = private_static_fields_symbols
|
||||
# dotnet_naming_style.prefix_private_field_with_underscore.required_prefix = _
|
19
.runsettings
Normal file
19
.runsettings
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RunSettings>
|
||||
<DataCollectionRunSettings>
|
||||
<DataCollectors>
|
||||
<DataCollector friendlyName="XPlat Code Coverage">
|
||||
<Configuration>
|
||||
<Format>cobertura,opencover</Format>
|
||||
<ExcludeByAttribute>Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute</ExcludeByAttribute>
|
||||
<ExcludeByFile>**/tests/**.cs,**/samples/**.cs</ExcludeByFile>
|
||||
<SingleHit>false</SingleHit>
|
||||
<UseSourceLink>true</UseSourceLink>
|
||||
<IncludeTestAssembly>false</IncludeTestAssembly>
|
||||
<SkipAutoProps>true</SkipAutoProps>
|
||||
<DeterministicReport>true</DeterministicReport>
|
||||
</Configuration>
|
||||
</DataCollector>
|
||||
</DataCollectors>
|
||||
</DataCollectionRunSettings>
|
||||
</RunSettings>
|
203
.vscode/tasks.json
vendored
Normal file
203
.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,203 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "restore",
|
||||
"command": "dotnet",
|
||||
"type": "shell",
|
||||
"args": [
|
||||
"restore",
|
||||
"--verbosity",
|
||||
"minimal",
|
||||
"-bl:logs\\restore.binlog"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"presentation": {
|
||||
"reveal": "never",
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "build",
|
||||
"command": "dotnet",
|
||||
"type": "shell",
|
||||
"args": [
|
||||
"build",
|
||||
"--configuration",
|
||||
"Release",
|
||||
"--no-restore",
|
||||
"--nologo",
|
||||
"--verbosity",
|
||||
"minimal",
|
||||
"/property:GenerateFullPaths=true",
|
||||
"/consoleloggerparameters:NoSummary",
|
||||
"/p:TF_BUILD=true",
|
||||
"-bl:logs\\build.binlog"
|
||||
],
|
||||
"dependsOrder": "sequence",
|
||||
"dependsOn": [
|
||||
"restore"
|
||||
],
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"reveal": "silent",
|
||||
"panel": "shared",
|
||||
"clear": true
|
||||
},
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "test",
|
||||
"command": "dotnet",
|
||||
"type": "shell",
|
||||
"args": [
|
||||
"test",
|
||||
"--configuration",
|
||||
"Release",
|
||||
"--no-restore",
|
||||
"--no-build",
|
||||
"--nologo",
|
||||
"--verbosity",
|
||||
"normal",
|
||||
"--logger",
|
||||
"trx",
|
||||
"--results-directory",
|
||||
"./TestResults",
|
||||
"--collect:'XPlat Code Coverage'",
|
||||
"/p:CopyLocalLockFileAssemblies=true",
|
||||
"/consoleloggerparameters:NoSummary",
|
||||
"/p:SkipAutoProps=true",
|
||||
"/p:CollectCoverage=true",
|
||||
"/p:CoverletOutput=../../TestResults/",
|
||||
"/p:MergeWith=./TestResults/coverage.json",
|
||||
"/p:CoverletOutputFormat=\"opencover%2ccobertura%2cjson\"",
|
||||
"-bl:logs\\test.binlog"
|
||||
],
|
||||
"group": {
|
||||
"kind": "test",
|
||||
"isDefault": true
|
||||
},
|
||||
"dependsOrder": "sequence",
|
||||
"dependsOn": [
|
||||
"build"
|
||||
],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": true,
|
||||
"clear": true
|
||||
},
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "pack",
|
||||
"command": "dotnet",
|
||||
"type": "shell",
|
||||
"args": [
|
||||
"pack",
|
||||
"--configuration",
|
||||
"Release",
|
||||
"--no-restore",
|
||||
"--nologo",
|
||||
"--verbosity",
|
||||
"minimal",
|
||||
"--output",
|
||||
"packages",
|
||||
"/property:GenerateFullPaths=true",
|
||||
"/consoleloggerparameters:NoSummary",
|
||||
"/p:TF_BUILD=true",
|
||||
"-bl:logs\\pack.binlog"
|
||||
],
|
||||
"dependsOrder": "sequence",
|
||||
"dependsOn": [
|
||||
"publish"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": true,
|
||||
"clear": true
|
||||
},
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "publish",
|
||||
"command": "dotnet",
|
||||
"type": "shell",
|
||||
"args": [
|
||||
"publish",
|
||||
"--configuration",
|
||||
"Release",
|
||||
"--no-restore",
|
||||
"--no-build",
|
||||
"--nologo",
|
||||
"/property:GenerateFullPaths=true",
|
||||
"/consoleloggerparameters:NoSummary",
|
||||
"/p:TF_BUILD=true",
|
||||
"-bl:logs\\publish.binlog"
|
||||
],
|
||||
"dependsOrder": "sequence",
|
||||
"dependsOn": [
|
||||
"test"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "never",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": true,
|
||||
"clear": true
|
||||
},
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "clean",
|
||||
"command": "dotnet",
|
||||
"type": "shell",
|
||||
"args": [
|
||||
"clean",
|
||||
"--configuration",
|
||||
"Release",
|
||||
"--verbosity",
|
||||
"minimal"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"presentation": {
|
||||
"reveal": "never",
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "cleanPublished",
|
||||
"type": "process",
|
||||
"command": "del",
|
||||
"args": [
|
||||
"-rf",
|
||||
"upload/*"
|
||||
],
|
||||
"group": "build",
|
||||
"presentation": {},
|
||||
"problemMatcher": "$msCompile"
|
||||
}
|
||||
]
|
||||
}
|
227
Directory.Build.props
Normal file
227
Directory.Build.props
Normal file
@ -0,0 +1,227 @@
|
||||
<Project>
|
||||
<ImportGroup
|
||||
Condition="Exists($([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))) == 'true'">
|
||||
<Import
|
||||
Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))"/>
|
||||
</ImportGroup>
|
||||
|
||||
<PropertyGroup Label="Project">
|
||||
<NuGetAudit>true</NuGetAudit>
|
||||
<!-- Suppresses display of the sign-on banner -->
|
||||
<NoLogo>true</NoLogo>
|
||||
<!-- Prepend organization name to default namespace -->
|
||||
<RootNamespace>Kritikos.$(MSBuildProjectName)</RootNamespace>
|
||||
<!-- Enable global usings based on project type -->
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<!-- Generate documentation file and ignore warnings for undocumented elements -->
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PublishDocumentationFile>true</PublishDocumentationFile>
|
||||
<NoWarn>$(NoWarn);1591;1701;1702;NU1507</NoWarn>
|
||||
<!-- Error out upon trying to package projects marked as not packable -->
|
||||
<WarnOnPackingNonPackableProject>false</WarnOnPackingNonPackableProject>
|
||||
<!-- Disable warnings on preview SDK versions -->
|
||||
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
|
||||
<!-- Enable lock files -->
|
||||
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
|
||||
<!-- Disable nugets from SDK fallback folders -->
|
||||
<DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
|
||||
<!-- Enable nullable context by default for all projects -->
|
||||
<Nullable>enable</Nullable>
|
||||
<!-- Enable .NET 5+ native analyzers -->
|
||||
<EnableNETAnalyzers>True</EnableNETAnalyzers>
|
||||
<!-- Use latest stable language features -->
|
||||
<AnalysisLevel>preview</AnalysisLevel>
|
||||
<AnalysisMode>All</AnalysisMode>
|
||||
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
|
||||
<!-- Locked mode should only be enabled on CI -->
|
||||
<RestoreLockedMode Condition="'$(ContinuousIntegrationBuild)' == 'true'">true</RestoreLockedMode>
|
||||
<!-- Use deterministic builds -->
|
||||
<Deterministic Condition="'$(ContinuousIntegrationBuild)' == 'True'">true</Deterministic>
|
||||
<DeterministicSourcePaths Condition="'$(IsTestProject)' == 'true'">false</DeterministicSourcePaths>
|
||||
<!-- Use latest language version supported by the SDK -->
|
||||
<LangVersion>preview</LangVersion>
|
||||
<ClsCompliant>false</ClsCompliant>
|
||||
<!-- Defaults to checked context for math operations, throws OverflowException when needed -->
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
<ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
|
||||
<ApplicationVisualStyles>true</ApplicationVisualStyles>
|
||||
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
|
||||
<GenerateRequiresPreviewFeaturesAttribute>False</GenerateRequiresPreviewFeaturesAttribute>
|
||||
<DefaultItemExcludes>$(DefaultItemExcludes);*.log;*.binlog</DefaultItemExcludes>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="$(ArtifactsPath) == ''">
|
||||
<ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="Central Package Management">
|
||||
<!-- Create Directory.Packages.props file next to solution to use -->
|
||||
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
||||
<!-- Any transitive dependency defined below will be used explicitly on the version stated -->
|
||||
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="Project Assets">
|
||||
<ProjectIcon Condition="Exists('$(MSBuildThisFileDirectory)\icon.png')">
|
||||
$(MSBuildThisFileDirectory)\icon.png
|
||||
</ProjectIcon>
|
||||
<ProjectIcon Condition="Exists('$(MSBuildProjectDirectory)\icon.png')">
|
||||
$(MSBuildProjectDirectory)\icon.png
|
||||
</ProjectIcon>
|
||||
<ProjectIconExists Condition="$(ProjectIcon) != ''">true</ProjectIconExists>
|
||||
|
||||
<ProjectReadMe Condition="Exists('$(MSBuildThisFileDirectory)\README.md')">
|
||||
$(MSBuildThisFileDirectory)\README.md
|
||||
</ProjectReadMe>
|
||||
<ProjectReadMe Condition="Exists('$(MSBuildProjectDirectory)\README.md')">
|
||||
$(MSBuildProjectDirectory)\README.md
|
||||
</ProjectReadMe>
|
||||
<ProjectReadMeExists Condition="$(ProjectReadMe) != ''">true</ProjectReadMeExists>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="SDK Functionality"
|
||||
Condition="'$(UsingMicrosoftNETSdkWeb)' == 'True' OR '$(UsingMicrosoftNETSdkWorker)' == 'True'">
|
||||
<IsPackable>false</IsPackable>
|
||||
<PackAsTool>false</PackAsTool>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="Disable Launch Settings for Worker Service"
|
||||
Condition="'$(UsingMicrosoftNETSdkWorker)' == 'True'">
|
||||
<NoDefaultLaunchSettingsFile>true</NoDefaultLaunchSettingsFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="OpenAPI Analyzers" Condition="'$(UsingMicrosoftNETSdkWeb)' == 'True'">
|
||||
<IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
|
||||
<OpenApiDocumentsDirectory>$(MSBuildProjectDirectory)/OpenApi</OpenApiDocumentsDirectory>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="MAUI Features">
|
||||
<TrimMode>Full</TrimMode>
|
||||
<MauiEnableXamlCBindingWithSourceCompilation>true</MauiEnableXamlCBindingWithSourceCompilation>
|
||||
<MauiStrictXamlCompilation>true</MauiStrictXamlCompilation>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="Entity Framework Core - Compiled Model generation">
|
||||
<!-- Needs Microsoft.EntityFrameworkCore.Tasks to work -->
|
||||
<InterceptorsNamespaces>
|
||||
$(InterceptorsPreviewNamespaces);Microsoft.EntityFrameworkCore.GeneratedInterceptors
|
||||
</InterceptorsNamespaces>
|
||||
<EFOptimizeContext>true</EFOptimizeContext>
|
||||
<EFScaffoldModelStage>build</EFScaffoldModelStage>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Sets deterministic source paths for CI builds -->
|
||||
<PropertyGroup Label="CI Build">
|
||||
<!--
|
||||
https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml#system-variables -->
|
||||
<ContinuousIntegrationBuild Condition="'$(TF_BUILD)' == 'true'">true</ContinuousIntegrationBuild>
|
||||
|
||||
<!--
|
||||
https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables -->
|
||||
<ContinuousIntegrationBuild Condition="'$(GITHUB_ACTIONS)' == 'true'">true</ContinuousIntegrationBuild>
|
||||
|
||||
<!-- https://docs.gitlab.com/ee/ci/variables/predefined_variables.html -->
|
||||
<ContinuousIntegrationBuild Condition="'$(GITLAB_CI)' == 'true'">true</ContinuousIntegrationBuild>
|
||||
|
||||
<!-- https://www.appveyor.com/docs/environment-variables/ -->
|
||||
<ContinuousIntegrationBuild Condition="'$(APPVEYOR)' == 'True'">true</ContinuousIntegrationBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Enable custom nesting for files -->
|
||||
<ItemGroup>
|
||||
<ProjectCapability Include="DynamicFileNesting"/>
|
||||
<ProjectCapability Include="DynamicDependentFile"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Mark assemblies as CLS compliant so the compiler warns on non compliant usage -->
|
||||
<PropertyGroup Condition="$(IsPackable) == 'true'">
|
||||
<ClsCompliant>true</ClsCompliant>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<AssemblyAttribute Include="System.CLSCompliant">
|
||||
<_Parameter1>$(ClsCompliant)</_Parameter1>
|
||||
<_Parameter1_TypeName>System.Boolean</_Parameter1_TypeName>
|
||||
</AssemblyAttribute>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Use readme as nuget information -->
|
||||
<ItemGroup Label="Readme" Condition="$(IsPackable) == 'True' AND $(ProjectReadMe) != ''">
|
||||
<None Include="$(ProjectReadMe)" Pack="true" PackagePath="" Visible="true"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Use nuget icon -->
|
||||
<ItemGroup Label="Icon" Condition="$(IsPackable) == 'True' AND $(ProjectIconExists) == 'True'">
|
||||
<None Include="$(ProjectIcon)" Pack="true" PackagePath="icon.png" Visible="false"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Use .NET ruleset for analyzers -->
|
||||
<PropertyGroup Label="Code Analysis Ruleset"
|
||||
Condition="Exists('$(MSBuildThisFileDirectory)\dotnet.ruleset')">
|
||||
<CodeAnalysisRuleset>$(MSBuildThisFileDirectory)\dotnet.ruleset</CodeAnalysisRuleset>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Uses pretty xUnit configuration -->
|
||||
<ItemGroup Label="xUnit Configuration"
|
||||
Condition="Exists('$(MSBuildThisFileDirectory)\xunit.runner.json') AND $(IsTestProject)=='True'">
|
||||
<AdditionalFiles Include="$(MSBuildThisFileDirectory)\xunit.runner.json"
|
||||
Link="xunit.runner.json" Visible="false">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</AdditionalFiles>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Project internals are exposed to projects named $(Project).Tests by default -->
|
||||
<ItemGroup
|
||||
Condition="@(InternalsVisibleToSuffix->Count()) == 0 AND @(InternalsVisibleTo->Count()) == 0">
|
||||
<InternalsVisibleToSuffix Include=".Tests"/>
|
||||
<InternalsVisibleToSuffix Include="Tests"/>
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Label="Package">
|
||||
<PackageId>$(RootNamespace)</PackageId>
|
||||
<Company>Kritikos IO</Company>
|
||||
<Authors>Alexandros Kritikos</Authors>
|
||||
<CurrentYear>$([System.DateTime]::Now.ToString(yyyy))</CurrentYear>
|
||||
<Copyright>Copyright © 2017-$(CurrentYear) Kritikos IO. All rights reserved.</Copyright>
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
<PackageOutputPath>$(MSBuildThisFileDirectory)/packages</PackageOutputPath>
|
||||
<PublishDir>$(MSBuildThisFileDirectory)/upload/$(ProjectName)</PublishDir>
|
||||
<PackageIcon Condition="$(ProjectIconExists) == 'True'">icon.png</PackageIcon>
|
||||
<PackageReadmeFile Condition="$(ProjectReadMeExists) == 'True'">README.md</PackageReadmeFile>
|
||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<!-- Optional: Embed source files that are not tracked by the source control manager to the PDB -->
|
||||
<!-- This is useful if you generate files during the build -->
|
||||
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||
<!-- Optional: Build symbol package (.snupkg) to distribute the PDB containing Source Link -->
|
||||
<IncludeSymbols>true</IncludeSymbols>
|
||||
<EnablePackageValidation>true</EnablePackageValidation>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
|
||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Label="Nugets" Condition="'$(IsTestProject)' != 'true'">
|
||||
<PackageReference Include="GitVersion.MsBuild"
|
||||
Condition="Exists('$(MSBuildThisFileDirectory)\.git')">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Label="Test Frameworks" Condition="'$(IsTestProject)' == 'true'">
|
||||
<PackageReference Include="NSubstitute"/>
|
||||
<PackageReference Include="NSubstitute.Analyzers.CSharp">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="xunit.analyzers">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Label="SourceLink" Condition="$(IsPackable) == 'true'">
|
||||
<SourceLinkGiteaHost Include="git.kritikos.io"/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
67
Directory.Build.targets
Normal file
67
Directory.Build.targets
Normal file
@ -0,0 +1,67 @@
|
||||
<Project>
|
||||
<Target Name="RestoreNpmAssets">
|
||||
<Exec Command="npm install" />
|
||||
</Target>
|
||||
|
||||
<PropertyGroup Label="Test Functionality" Condition="$(IsTestProject) == 'true'">
|
||||
<IsPackable>false</IsPackable>
|
||||
<PackAsTool>false</PackAsTool>
|
||||
<NoDefaultLaunchSettingsFile>true</NoDefaultLaunchSettingsFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Label="Hide Assets">
|
||||
<None Update="icon.png" Visible="false"/>
|
||||
<None Update="README.md" Visible="false"/>
|
||||
<None Update="..\..\README.md" Visible="false"/>
|
||||
<None Update="packages.lock.json" Visible="false" />
|
||||
<Content Update="packages.lock.json" Visible="false" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="AddInternalsVisibleTo" BeforeTargets="BeforeCompile">
|
||||
<!--
|
||||
Add an ItemGroup with tags in the following format:
|
||||
<InternalsVisibleTo Include="CustomTest1" />
|
||||
-> [assembly: InternalsVisibleTo("CustomTest1")]
|
||||
<InternalsVisibleTo Include="CustomTest2, PublicKey=abc" />
|
||||
-> [assembly: InternalsVisibleTo("CustomTest2, PublicKey=abc")]
|
||||
<InternalsVisibleTo Include="$(AssemblyName).Custom" />
|
||||
-> [assembly: InternalsVisibleTo("ClassLibrary1.Custom")]
|
||||
|
||||
on a project with assembly name ClasLibrary1:
|
||||
<InternalsVisibleToSuffix Include=".Tests" />
|
||||
-> [assembly: InternalsVisibleTo("ClassLibrary1.Tests")]
|
||||
<InternalsVisibleToSuffix Include=".FunctionalTests" />
|
||||
-> [assembly: InternalsVisibleTo("ClassLibrary1.FunctionalTests")]
|
||||
-->
|
||||
|
||||
<!-- Add default suffix for tests -->
|
||||
<ItemGroup>
|
||||
<InternalsVisibleToSuffix Include=".Tests" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Handle InternalsVisibleTo -->
|
||||
<ItemGroup Condition="'@(InternalsVisibleTo->Count())' > 0">
|
||||
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
|
||||
<_Parameter1>%(InternalsVisibleTo.Identity)</_Parameter1>
|
||||
</AssemblyAttribute>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Handle InternalsVisibleToSuffix -->
|
||||
<ItemGroup Condition="@(InternalsVisibleToSuffix->Count()) > 0">
|
||||
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo"
|
||||
Condition="$(AssemblyName.EndsWith(%(InternalsVisibleToSuffix.Identity))) == 'false'">
|
||||
<_Parameter1>$(AssemblyName)%(InternalsVisibleToSuffix.Identity)</_Parameter1>
|
||||
</AssemblyAttribute>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="CreateReleaseNotesFromFile" BeforeTargets="GenerateNuspec"
|
||||
Condition="Exists('$(MSBuildThisFileDirectory)changes.log')">
|
||||
<ReadLinesFromFile File="$(MSBuildThisFileDirectory)changes.log">
|
||||
<Output TaskParameter="Lines" ItemName="ReleaseNoteLines" />
|
||||
</ReadLinesFromFile>
|
||||
<PropertyGroup>
|
||||
<PackageReleaseNotes>@(ReleaseNoteLines, '%0a')</PackageReleaseNotes>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
</Project>
|
12
Directory.Packages.props
Normal file
12
Directory.Packages.props
Normal file
@ -0,0 +1,12 @@
|
||||
<Project>
|
||||
<ItemGroup Label="Packages">
|
||||
<PackageVersion Include="coverlet.collector" Version="6.0.4"/>
|
||||
<PackageVersion Include="GitVersion.MsBuild" Version="6.1.0"/>
|
||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0"/>
|
||||
<PackageVersion Include="NSubstitute.Analyzers.CSharp" Version="1.0.17"/>
|
||||
<PackageVersion Include="NSubstitute" Version="5.3.0"/>
|
||||
<PackageVersion Include="xunit" Version="2.9.3"/>
|
||||
<PackageVersion Include="xunit.analyzers" Version="1.20.0"/>
|
||||
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.2"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
35
dotnet.ruleset
Normal file
35
dotnet.ruleset
Normal file
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RuleSet Name="Kritikos Ruleset" Description="Common roslyn analyser configuration" ToolsVersion="10.0">
|
||||
<Rules AnalyzerId="AsyncUsageAnalyzers" RuleNamespace="AsyncUsageAnalyzers">
|
||||
<Rule Id="AvoidAsyncSuffix" Action="Warning" />
|
||||
<Rule Id="AvoidAsyncVoid" Action="Warning" />
|
||||
<Rule Id="UseAsyncSuffix" Action="Warning" />
|
||||
<Rule Id="UseConfigureAwait" Action="None" />
|
||||
</Rules>
|
||||
<Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
|
||||
<Rule Id="CS1573" Action="None" />
|
||||
<Rule Id="CS1591" Action="None" />
|
||||
<Rule Id="CS2008" Action="None" />
|
||||
</Rules>
|
||||
<Rules AnalyzerId="Microsoft.CodeQuality.Analyzers" RuleNamespace="Microsoft.CodeQuality.Analyzers">
|
||||
<Rule Id="CA1303" Action="None" />
|
||||
<Rule Id="CA1848" Action="None" />
|
||||
<Rule Id="CA2007" Action="None" />
|
||||
<Rule Id="CA1707" Action="None" />
|
||||
</Rules>
|
||||
<Rules AnalyzerId="SerilogAnalyzer" RuleNamespace="SerilogAnalyzer">
|
||||
<Rule Id="Serilog004" Action="None" />
|
||||
</Rules>
|
||||
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
|
||||
<Rule Id="SA1101" Action="None" />
|
||||
<Rule Id="SA1123" Action="None" />
|
||||
<Rule Id="SA1124" Action="None" />
|
||||
<Rule Id="SA1600" Action="None" />
|
||||
<Rule Id="SA1601" Action="None" />
|
||||
<Rule Id="SA1602" Action="None" />
|
||||
<Rule Id="SA1633" Action="None" />
|
||||
<Rule Id="SA1623" Action="None" />
|
||||
<Rule Id="SA1642" Action="None" />
|
||||
<Rule Id="SA1649" Action="None" />
|
||||
</Rules>
|
||||
</RuleSet>
|
0
packages/.gitkeep
Normal file
0
packages/.gitkeep
Normal file
17
samples/Directory.Build.props
Normal file
17
samples/Directory.Build.props
Normal file
@ -0,0 +1,17 @@
|
||||
<Project>
|
||||
<ImportGroup
|
||||
Condition="Exists($([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))) == 'true'">
|
||||
<Import
|
||||
Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
|
||||
</ImportGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<IsPackable>false</IsPackable>
|
||||
<PackAsTool>false</PackAsTool>
|
||||
<IsPublishable>false</IsPublishable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<AssemblyAttribute Include="System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage" />
|
||||
</ItemGroup>
|
||||
</Project>
|
11
src/Directory.Build.props
Normal file
11
src/Directory.Build.props
Normal file
@ -0,0 +1,11 @@
|
||||
<Project>
|
||||
<ImportGroup
|
||||
Condition="Exists($([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))) == 'true'">
|
||||
<Import
|
||||
Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
|
||||
</ImportGroup>
|
||||
|
||||
<PropertyGroup Label="Package">
|
||||
<PackageProjectUrl>http://localhost</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
</Project>
|
16
tests/Directory.Build.props
Normal file
16
tests/Directory.Build.props
Normal file
@ -0,0 +1,16 @@
|
||||
<Project>
|
||||
<ImportGroup
|
||||
Condition="Exists($([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))) == 'true'">
|
||||
<Import
|
||||
Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
|
||||
</ImportGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<IsPublishable>false</IsPublishable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<AssemblyAttribute Include="System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
0
upload/.gitkeep
Normal file
0
upload/.gitkeep
Normal file
7
xunit.runner.json
Normal file
7
xunit.runner.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"$schema": "https://xunit.net/schema/current/xunit.runner.schema.json",
|
||||
"methodDisplay": "classAndMethod",
|
||||
"methodDisplayOptions": "all",
|
||||
"parallelizeAssembly": true,
|
||||
"longRunningTestSeconds": 5
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user