Compare commits
47 commits
Author | SHA1 | Date | |
---|---|---|---|
D. Moonfire | 5a993e85cb | ||
D. Moonfire | aac4b4373d | ||
D. Moonfire | 22ddae11f8 | ||
D. Moonfire | b32ca7582c | ||
D. Moonfire | 07eb12414a | ||
D. Moonfire | 82e1bc3c28 | ||
D. Moonfire | 070cf2bfb8 | ||
D. Moonfire | 185980b5c4 | ||
D. Moonfire | 2e93ebdb7c | ||
D. Moonfire | bca501d4e5 | ||
D. Moonfire | 189273692c | ||
D. Moonfire | 2892ec3445 | ||
D. Moonfire | 08aafb144c | ||
D. Moonfire | fc1ab22a0e | ||
D. Moonfire | d5b975c179 | ||
D. Moonfire | c73805ae93 | ||
D. Moonfire | edda9a2773 | ||
D. Moonfire | e02c56e77e | ||
D. Moonfire | a5694d0cee | ||
D. Moonfire | 0a36d70fb0 | ||
D. Moonfire | c5c9b8bf9c | ||
D. Moonfire | a8c6d0e582 | ||
D. Moonfire | 084aa7e812 | ||
D. Moonfire | 7d388b09c2 | ||
D. Moonfire | 9e93eb6ce6 | ||
D. Moonfire | 6a397f5284 | ||
D. Moonfire | 0011dc715b | ||
D. Moonfire | 982e3b38c3 | ||
D. Moonfire | 16a888fe9e | ||
D. Moonfire | 8a5967a05a | ||
D. Moonfire | 836e482d4a | ||
D. Moonfire | d35410625a | ||
D. Moonfire | 7a42ce2f00 | ||
D. Moonfire | bd26d796e2 | ||
D. Moonfire | 05a4bc14f7 | ||
D. Moonfire | 10f53bbe10 | ||
D. Moonfire | 4988f6ecbc | ||
D. Moonfire | 22ad49e46b | ||
D. Moonfire | 16880cb36e | ||
D. Moonfire | aa1eae40e0 | ||
D. Moonfire | 152428b235 | ||
D. Moonfire | 962e1f0d11 | ||
D. Moonfire | 0603603be0 | ||
D. Moonfire | 294d9c0a38 | ||
D. Moonfire | 4093d9c0cb | ||
D. Moonfire | f3b18dc54a | ||
630c6ff120 |
|
@ -15,4 +15,4 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
189
.editorconfig
189
.editorconfig
|
@ -1,6 +1,7 @@
|
|||
root = true
|
||||
# EditorConfig is awesome: https://EditorConfig.org
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
|
@ -11,128 +12,47 @@ indent_size = 4
|
|||
# Microsoft .NET properties
|
||||
csharp_new_line_before_members_in_object_initializers = false
|
||||
csharp_preferred_modifier_order = public, private, protected, internal, new, abstract, virtual, sealed, override, static, readonly, extern, unsafe, volatile, async:suggestion
|
||||
csharp_style_var_elsewhere = false:suggestion
|
||||
csharp_style_var_for_built_in_types = false:suggestion
|
||||
csharp_style_var_when_type_is_apparent = true:suggestion
|
||||
csharp_space_after_cast = false
|
||||
csharp_style_var_elsewhere = false:hint
|
||||
csharp_style_var_for_built_in_types = false:hint
|
||||
csharp_style_var_when_type_is_apparent = true:hint
|
||||
csharp_preserve_single_line_statements = false
|
||||
dotnet_naming_rule.event_rule.import_to_resharper = as_predefined
|
||||
dotnet_naming_rule.event_rule.severity = warning
|
||||
dotnet_naming_rule.event_rule.style = upper_camel_case_underscore_tolerant_style
|
||||
dotnet_naming_rule.event_rule.symbols = event_symbols
|
||||
dotnet_naming_rule.local_constants_rule.import_to_resharper = as_predefined
|
||||
dotnet_naming_rule.local_constants_rule.severity = warning
|
||||
dotnet_naming_rule.local_constants_rule.style = upper_camel_case_style
|
||||
dotnet_naming_rule.local_constants_rule.symbols = local_constants_symbols
|
||||
dotnet_naming_rule.private_constants_rule.import_to_resharper = as_predefined
|
||||
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.import_to_resharper = as_predefined
|
||||
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_override_rule.import_to_resharper = False
|
||||
dotnet_naming_rule.private_static_fields_override_rule.severity = warning
|
||||
dotnet_naming_rule.private_static_fields_override_rule.style = upper_camel_case_style
|
||||
dotnet_naming_rule.private_static_fields_override_rule.symbols = private_static_fields_override_symbols
|
||||
dotnet_naming_rule.private_static_fields_rule.import_to_resharper = as_predefined
|
||||
dotnet_naming_rule.private_static_fields_rule.resharper_style = AaBb, aaBb
|
||||
dotnet_naming_rule.private_static_fields_rule.severity = warning
|
||||
dotnet_naming_rule.private_static_fields_rule.style = upper_camel_case_style
|
||||
dotnet_naming_rule.private_static_fields_rule.symbols = private_static_fields_symbols
|
||||
dotnet_naming_rule.private_static_fields_rule_1.import_to_resharper = True
|
||||
dotnet_naming_rule.private_static_fields_rule_1.resharper_description = PrivateStaticFields
|
||||
dotnet_naming_rule.private_static_fields_rule_1.resharper_guid = 2ec29786-2764-45cc-849e-7a476ce55db8
|
||||
dotnet_naming_rule.private_static_fields_rule_1.resharper_style = AaBb, aaBb
|
||||
dotnet_naming_rule.private_static_fields_rule_1.severity = warning
|
||||
dotnet_naming_rule.private_static_fields_rule_1.style = upper_camel_case_style
|
||||
dotnet_naming_rule.private_static_fields_rule_1.symbols = private_static_fields_symbols_1
|
||||
dotnet_naming_rule.private_static_readonly_rule.import_to_resharper = as_predefined
|
||||
dotnet_naming_rule.private_static_readonly_rule.severity = warning
|
||||
dotnet_naming_rule.private_static_readonly_rule.style = upper_camel_case_style
|
||||
dotnet_naming_rule.private_static_readonly_rule.symbols = private_static_readonly_symbols
|
||||
dotnet_naming_style.lower_camel_case_style.capitalization = camel_case
|
||||
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case
|
||||
dotnet_naming_style.upper_camel_case_underscore_tolerant_style.capitalization = pascal_case
|
||||
dotnet_naming_style.upper_camel_case_underscore_tolerant_style.word_separator = _
|
||||
dotnet_naming_symbols.event_symbols.applicable_accessibilities = *
|
||||
dotnet_naming_symbols.event_symbols.applicable_kinds = event
|
||||
dotnet_naming_symbols.local_constants_symbols.applicable_accessibilities = *
|
||||
dotnet_naming_symbols.local_constants_symbols.applicable_kinds = local
|
||||
dotnet_naming_symbols.local_constants_symbols.required_modifiers = const
|
||||
dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities = private
|
||||
dotnet_naming_symbols.private_constants_symbols.applicable_kinds = field
|
||||
dotnet_naming_symbols.private_constants_symbols.required_modifiers = const
|
||||
dotnet_naming_symbols.private_instance_fields_symbols.applicable_accessibilities = private
|
||||
dotnet_naming_symbols.private_instance_fields_symbols.applicable_kinds = field
|
||||
dotnet_naming_symbols.private_static_fields_override_symbols.applicable_accessibilities = local, private
|
||||
dotnet_naming_symbols.private_static_fields_override_symbols.applicable_kinds = field
|
||||
dotnet_naming_symbols.private_static_fields_override_symbols.required_modifiers = const, static
|
||||
dotnet_naming_symbols.private_static_fields_symbols.applicable_accessibilities = private
|
||||
dotnet_naming_symbols.private_static_fields_symbols.applicable_kinds = field
|
||||
dotnet_naming_symbols.private_static_fields_symbols.required_modifiers = static
|
||||
dotnet_naming_symbols.private_static_fields_symbols_1.applicable_accessibilities = local, private
|
||||
dotnet_naming_symbols.private_static_fields_symbols_1.applicable_kinds = field
|
||||
dotnet_naming_symbols.private_static_fields_symbols_1.required_modifiers = static
|
||||
dotnet_naming_symbols.private_static_fields_symbols_1.resharper_applicable_kinds = field
|
||||
dotnet_naming_symbols.private_static_fields_symbols_1.resharper_required_modifiers = static
|
||||
dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private
|
||||
dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field
|
||||
dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static, readonly
|
||||
dotnet_separate_import_directive_groups = true
|
||||
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:none
|
||||
dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary:none
|
||||
dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:none
|
||||
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
|
||||
dotnet_style_predefined_type_for_member_access = true:suggestion
|
||||
dotnet_style_qualification_for_event = true:suggestion
|
||||
dotnet_style_qualification_for_field = true:suggestion
|
||||
dotnet_style_qualification_for_method = true:suggestion
|
||||
dotnet_style_qualification_for_property = true:suggestion
|
||||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
|
||||
csharp_preserve_single_line_blocks = true
|
||||
dotnet_style_predefined_type_for_locals_parameters_members = true:hint
|
||||
dotnet_style_predefined_type_for_member_access = true:hint
|
||||
dotnet_style_qualification_for_event = true:hint
|
||||
dotnet_style_qualification_for_field = true:hint
|
||||
dotnet_style_qualification_for_method = true:hint
|
||||
dotnet_style_qualification_for_property = true:hint
|
||||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:hint
|
||||
|
||||
# ReSharper properties
|
||||
resharper_alignment_tab_fill_style = optimal_fill
|
||||
resharper_align_multiline_binary_expressions_chain = false
|
||||
resharper_align_multiline_statement_conditions = false
|
||||
resharper_apply_on_completion = true
|
||||
resharper_blank_lines_after_control_transfer_statements = 1
|
||||
resharper_blank_lines_after_multiline_statements = 1
|
||||
resharper_blank_lines_around_single_line_auto_property = 1
|
||||
resharper_blank_lines_around_single_line_property = 1
|
||||
resharper_blank_lines_before_control_transfer_statements = 1
|
||||
resharper_blank_lines_before_multiline_statements = 1
|
||||
resharper_blank_lines_before_single_line_comment = 1
|
||||
resharper_blank_lines_between_using_groups = 1
|
||||
resharper_braces_for_for = required
|
||||
resharper_braces_for_foreach = required
|
||||
resharper_braces_for_ifelse = required
|
||||
resharper_braces_for_while = required
|
||||
resharper_can_use_global_alias = false
|
||||
resharper_continuous_indent_multiplier = 1
|
||||
resharper_cpp_alignment_tab_fill_style = optimal_fill
|
||||
resharper_cpp_insert_final_newline = true
|
||||
resharper_csharp_alignment_tab_fill_style = use_spaces
|
||||
resharper_csharp_blank_lines_around_single_line_field = 1
|
||||
resharper_csharp_blank_lines_around_single_line_invocable = 1
|
||||
resharper_csharp_indent_style = space
|
||||
resharper_csharp_indent_style = tab
|
||||
resharper_csharp_insert_final_newline = true
|
||||
resharper_csharp_keep_blank_lines_in_code = 1
|
||||
resharper_csharp_keep_blank_lines_in_declarations = 1
|
||||
resharper_csharp_max_line_length = 120
|
||||
resharper_csharp_naming_rule.method_property_event = AaBb_AaBb
|
||||
resharper_csharp_naming_rule.private_constants = AaBb
|
||||
resharper_csharp_naming_rule.private_static_fields = AaBb, aaBb
|
||||
resharper_csharp_naming_rule.private_static_readonly = AaBb
|
||||
resharper_csharp_stick_comment = false
|
||||
resharper_csharp_new_line_before_while = true
|
||||
resharper_csharp_use_indent_from_vs = false
|
||||
resharper_csharp_wrap_arguments_style = chop_if_long
|
||||
resharper_csharp_wrap_before_binary_opsign = true
|
||||
resharper_csharp_wrap_extends_list_style = chop_if_long
|
||||
resharper_csharp_wrap_parameters_style = chop_if_long
|
||||
resharper_css_insert_final_newline = true
|
||||
resharper_default_exception_variable_name = exception
|
||||
resharper_css_insert_final_newline = false
|
||||
resharper_enforce_line_ending_style = true
|
||||
resharper_event_handler_pattern_long = On$event$
|
||||
resharper_html_alignment_tab_fill_style = optimal_fill
|
||||
resharper_html_insert_final_newline = false
|
||||
resharper_indent_nested_fixed_stmt = true
|
||||
resharper_js_indent_style = tab
|
||||
resharper_js_insert_final_newline = true
|
||||
|
@ -142,51 +62,28 @@ resharper_js_use_indent_from_vs = false
|
|||
resharper_js_wrap_before_binary_opsign = true
|
||||
resharper_js_wrap_chained_method_calls = chop_if_long
|
||||
resharper_keep_blank_lines_between_declarations = 1
|
||||
resharper_keep_existing_declaration_block_arrangement = true
|
||||
resharper_keep_existing_declaration_parens_arrangement = false
|
||||
resharper_keep_existing_embedded_block_arrangement = true
|
||||
resharper_keep_existing_enum_arrangement = true
|
||||
resharper_keep_existing_linebreaks = true
|
||||
resharper_keep_user_linebreaks = true
|
||||
resharper_min_blank_lines_after_imports = 1
|
||||
resharper_nested_ternary_style = expanded
|
||||
resharper_new_line_before_while = true
|
||||
resharper_place_attribute_on_same_line = false
|
||||
resharper_place_attribute_on_same_line = False
|
||||
resharper_place_constructor_initializer_on_same_line = false
|
||||
resharper_place_type_constraints_on_same_line = false
|
||||
resharper_protobuf_insert_final_newline = true
|
||||
resharper_protobuf_insert_final_newline = false
|
||||
resharper_qualified_using_at_nested_scope = true
|
||||
resharper_resx_alignment_tab_fill_style = optimal_fill
|
||||
resharper_t4_alignment_tab_fill_style = optimal_fill
|
||||
resharper_t4_insert_final_newline = true
|
||||
resharper_use_continuous_indent_inside_initializer_braces = false
|
||||
resharper_resx_insert_final_newline = false
|
||||
resharper_space_within_single_line_array_initializer_braces = true
|
||||
resharper_use_indents_from_main_language_in_file = false
|
||||
resharper_use_indent_from_vs = false
|
||||
resharper_vb_alignment_tab_fill_style = optimal_fill
|
||||
resharper_vb_insert_final_newline = false
|
||||
resharper_wrap_after_declaration_lpar = true
|
||||
resharper_wrap_after_invocation_lpar = true
|
||||
resharper_wrap_array_initializer_style = chop_if_long
|
||||
resharper_wrap_before_extends_colon = true
|
||||
resharper_wrap_before_first_type_parameter_constraint = true
|
||||
resharper_wrap_before_type_parameter_langle = true
|
||||
resharper_wrap_chained_binary_expressions = chop_if_long
|
||||
resharper_wrap_chained_method_calls = chop_always
|
||||
resharper_wrap_object_and_collection_initializer_style = chop_always
|
||||
resharper_xmldoc_alignment_tab_fill_style = optimal_fill
|
||||
resharper_xmldoc_indent_child_elements = ZeroIndent
|
||||
resharper_xmldoc_indent_text = ZeroIndent
|
||||
resharper_xmldoc_max_line_length = 80
|
||||
resharper_xml_alignment_tab_fill_style = optimal_fill
|
||||
resharper_xmldoc_insert_final_newline = false
|
||||
resharper_xml_insert_final_newline = false
|
||||
|
||||
# ReSharper inspection severities
|
||||
resharper_arrange_redundant_parentheses_highlighting = hint
|
||||
resharper_arrange_this_qualifier_highlighting = hint
|
||||
resharper_arrange_type_member_modifiers_highlighting = hint
|
||||
resharper_arrange_type_modifiers_highlighting = hint
|
||||
resharper_built_in_type_reference_style_for_member_access_highlighting = hint
|
||||
resharper_built_in_type_reference_style_highlighting = hint
|
||||
resharper_check_namespace_highlighting = none
|
||||
resharper_class_never_instantiated_global_highlighting = none
|
||||
resharper_convert_to_auto_property_highlighting = none
|
||||
resharper_localizable_element_highlighting = none
|
||||
resharper_redundant_comma_in_attribute_list_highlighting = none
|
||||
|
@ -194,16 +91,9 @@ resharper_redundant_comma_in_enum_declaration_highlighting = none
|
|||
resharper_redundant_comma_in_initializer_highlighting = none
|
||||
resharper_string_compare_to_is_culture_specific_highlighting = none
|
||||
resharper_string_index_of_is_culture_specific_1_highlighting = none
|
||||
resharper_suggest_var_or_type_built_in_types_highlighting = hint
|
||||
resharper_suggest_var_or_type_elsewhere_highlighting = hint
|
||||
resharper_suggest_var_or_type_simple_types_highlighting = hint
|
||||
resharper_use_null_propagation_highlighting = none
|
||||
resharper_use_object_or_collection_initializer_highlighting = hint
|
||||
resharper_use_string_interpolation_highlighting = hint
|
||||
resharper_web_config_module_not_resolved_highlighting = warning
|
||||
resharper_web_config_type_not_resolved_highlighting = warning
|
||||
resharper_web_config_wrong_module_highlighting = warning
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
# Matches the exact files either package.json or .travis.yml
|
||||
[{package.json,.travis.yml}]
|
||||
|
@ -211,6 +101,16 @@ indent_style = space
|
|||
indent_size = 2
|
||||
tab_width = 2
|
||||
|
||||
[*.{cs,js,json,jsx,proto,resjson,ts,tsx}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
tab_width = 4
|
||||
|
||||
[*.{asax,ascx,aspx,cshtml,css,htm,html,master,razor,skin,vb,xaml,xamlx,xoml}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
tab_width = 4
|
||||
|
||||
[*.{appxmanifest,build,config,csproj,dbml,discomap,dtd,jsproj,lsproj,njsproj,nuspec,proj,props,resw,resx,StyleCop,targets,tasks,vbproj,xml,xsd}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
@ -220,18 +120,3 @@ tab_width = 2
|
|||
indent_style = space
|
||||
indent_size = 2
|
||||
tab_width = 2
|
||||
|
||||
[*.cs]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
tab_width = 4
|
||||
|
||||
[*.{appxmanifest,asax,ascx,aspx,axaml,build,cg,cginc,compute,cs,cshtml,dtd,hlsl,hlsli,hlslinc,master,nuspec,paml,razor,resw,resx,skin,usf,ush,vb,xaml,xamlx,xoml,xsd}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
tab_width = 4
|
||||
|
||||
[*.{appxmanifest,asax,ascx,aspx,axaml,build,c,c++,cc,cginc,compute,cp,cpp,cs,cshtml,cu,cuh,cxx,dtd,fx,fxh,h,hh,hlsl,hlsli,hlslinc,hpp,hxx,inc,inl,ino,ipp,master,mpp,mq4,mq5,mqh,nuspec,paml,razor,resw,resx,skin,tpp,usf,ush,vb,xaml,xamlx,xoml,xsd}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
tab_width = 4
|
6
.envrc
6
.envrc
|
@ -1,5 +1,3 @@
|
|||
# Insert our scripts into the path.
|
||||
use flake || use nix
|
||||
export PATH=$PWD/scripts:$PATH
|
||||
|
||||
# Nix flakes are awesome.
|
||||
use flake
|
||||
export DOTNET_ROOT=$(dirname $(dirname $(which dotnet)))
|
||||
|
|
9
.gitignore
vendored
9
.gitignore
vendored
|
@ -11,8 +11,15 @@ obj/
|
|||
.idea/
|
||||
_ReSharper.Caches/
|
||||
node_modules/
|
||||
|
||||
# NixOS
|
||||
.direnv/
|
||||
|
||||
# Tests and Coverage
|
||||
coverage
|
||||
TestResults/
|
||||
tests/artifacts/
|
||||
.lefthook*
|
||||
|
||||
# Lefthook
|
||||
.lefthook-local/
|
||||
lefthook-local.yml
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
include:
|
||||
- template: Security/SAST.gitlab-ci.yml
|
||||
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
- release
|
||||
|
||||
default:
|
||||
image: registry.gitlab.com/dmoonfire/nix-flake-docker:latest
|
||||
|
||||
build:
|
||||
stage: build
|
||||
script:
|
||||
- nix develop --command scripts/build.sh
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH
|
||||
|
||||
test:
|
||||
stage: test
|
||||
script:
|
||||
- nix develop --command scripts/test.sh
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- ./**/*test-result.xml
|
||||
- ./coverage/Cobertura.xml
|
||||
- ./coverage/Summary.*
|
||||
- ./**/*.nupkg
|
||||
reports:
|
||||
coverage_report:
|
||||
coverage_format: cobertura
|
||||
path: ./coverage/Cobertura.xml
|
||||
junit:
|
||||
- ./**/*test-result.xml
|
||||
|
||||
publish:
|
||||
stage: release
|
||||
before_script:
|
||||
# Set it up so we can push the tag
|
||||
- project_url=$(echo $CI_PROJECT_URL | sed 's/https:\/\///')
|
||||
- git remote set-url origin https://oauth2:$GITLAB_TOKEN@$project_url
|
||||
script:
|
||||
- nix develop --command scripts/release.sh
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
30
.woodpecker.yml
Normal file
30
.woodpecker.yml
Normal file
|
@ -0,0 +1,30 @@
|
|||
clone:
|
||||
git:
|
||||
image: woodpeckerci/plugin-git
|
||||
settings:
|
||||
tags: true
|
||||
|
||||
pipeline:
|
||||
build:
|
||||
image: registry.gitlab.com/dmoonfire/nix-flake-docker:latest
|
||||
commands:
|
||||
- nix develop --command scripts/build.sh
|
||||
when:
|
||||
event: [push, pull_request, manual]
|
||||
|
||||
test:
|
||||
image: registry.gitlab.com/dmoonfire/nix-flake-docker:latest
|
||||
commands:
|
||||
- nix develop --command scripts/test.sh
|
||||
when:
|
||||
event: [push, pull_request, manual]
|
||||
|
||||
release-main:
|
||||
image: registry.gitlab.com/dmoonfire/nix-flake-docker:latest
|
||||
commands:
|
||||
- nix develop --command scripts/release.sh
|
||||
secrets:
|
||||
- gitea_token
|
||||
when:
|
||||
event: [push, manual]
|
||||
branch: main
|
21
LICENSE.txt
Normal file
21
LICENSE.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) Moonfire Games
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -1,298 +1,373 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26124.0
|
||||
MinimumVisualStudioVersion = 15.0.26124.0
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{570184FD-ECE4-4EC8-86E1-C1265E17D647}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Calendar", "src\Nitride.Calendar\Nitride.Calendar.csproj", "{D480943C-764D-4A8A-B546-642ED10586BB}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Feeds", "src\Nitride.Feeds\Nitride.Feeds.csproj", "{1204DECC-654A-433A-BF82-53F98AB24DCF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Gemtext", "src\Nitride.Gemtext\Nitride.Gemtext.csproj", "{23C7CBF7-9624-457A-8296-C03F75BC9BC6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Generators", "src\Nitride.Generators\Nitride.Generators.csproj", "{4ACB11B7-1EEB-48E7-845A-528770839125}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Handlebars", "src\Nitride.Handlebars\Nitride.Handlebars.csproj", "{56E595A6-7880-416E-B328-93B9617F92A6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Html", "src\Nitride.Html\Nitride.Html.csproj", "{3F9292D3-DA50-4DBA-AE90-E33E462470A1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.IO", "src\Nitride.IO\Nitride.IO.csproj", "{534BF940-25B2-4948-A101-7890CC9C4EA5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Markdown", "src\Nitride.Markdown\Nitride.Markdown.csproj", "{41FF3823-7008-43B1-AD6A-92437E0600B7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride", "src\Nitride\Nitride.csproj", "{757BA115-3465-46C5-ADDB-7B96D6900F33}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Slugs", "src\Nitride.Slugs\Nitride.Slugs.csproj", "{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Temporal", "src\Nitride.Temporal\Nitride.Temporal.csproj", "{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Yaml", "src\Nitride.Yaml\Nitride.Yaml.csproj", "{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{251D9C68-34EB-439D-B167-688BCC47DA17}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.IO.Tests", "tests\Nitride.IO.Tests\Nitride.IO.Tests.csproj", "{72A3E65B-8E73-40E9-8325-641BAF6B8744}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Tests", "tests\Nitride.Tests\Nitride.Tests.csproj", "{F940CD28-6867-4E5B-BC27-F476B3BEB49A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Yaml.Tests", "tests\Nitride.Yaml.Tests\Nitride.Yaml.Tests.csproj", "{29743817-A401-458F-9DD0-AF3579965953}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{47461A29-E502-4B0E-AAF5-D87C4B93AB6D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CopyFiles", "examples\CopyFiles\CopyFiles.csproj", "{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Slugs.Tests", "tests\Nitride.Slugs.Tests\Nitride.Slugs.Tests.csproj", "{C49E07D0-CD32-4332-90FA-07494195CAC4}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nitride.Temporal.Tests", "tests\Nitride.Temporal.Tests\Nitride.Temporal.Tests.csproj", "{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|x64.Build.0 = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|x86.Build.0 = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|x86.Build.0 = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|x64.Build.0 = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|x86.Build.0 = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|x64.Build.0 = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|x86.Build.0 = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|x64.Build.0 = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|x86.Build.0 = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|x64.Build.0 = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|x86.Build.0 = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|x64.Build.0 = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|x86.Build.0 = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|x64.Build.0 = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|x86.Build.0 = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|x64.Build.0 = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|x86.Build.0 = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|x64.Build.0 = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|x86.Build.0 = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|x64.Build.0 = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|x86.Build.0 = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|x86.Build.0 = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|x64.Build.0 = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|x86.Build.0 = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|x64.Build.0 = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|x86.Build.0 = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|x64.Build.0 = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|x86.Build.0 = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|x64.Build.0 = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|x86.Build.0 = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|x64.Build.0 = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|x86.Build.0 = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|x64.Build.0 = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{29743817-A401-458F-9DD0-AF3579965953} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1} = {47461A29-E502-4B0E-AAF5-D87C4B93AB6D}
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26124.0
|
||||
MinimumVisualStudioVersion = 15.0.26124.0
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{570184FD-ECE4-4EC8-86E1-C1265E17D647}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Calendar", "src\MfGames.Nitride.Calendar\MfGames.Nitride.Calendar.csproj", "{D480943C-764D-4A8A-B546-642ED10586BB}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Feeds", "src\MfGames.Nitride.Feeds\MfGames.Nitride.Feeds.csproj", "{1204DECC-654A-433A-BF82-53F98AB24DCF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Gemtext", "src\MfGames.Nitride.Gemtext\MfGames.Nitride.Gemtext.csproj", "{23C7CBF7-9624-457A-8296-C03F75BC9BC6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Generators", "src\MfGames.Nitride.Generators\MfGames.Nitride.Generators.csproj", "{4ACB11B7-1EEB-48E7-845A-528770839125}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Handlebars", "src\MfGames.Nitride.Handlebars\MfGames.Nitride.Handlebars.csproj", "{56E595A6-7880-416E-B328-93B9617F92A6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Html", "src\MfGames.Nitride.Html\MfGames.Nitride.Html.csproj", "{3F9292D3-DA50-4DBA-AE90-E33E462470A1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.IO", "src\MfGames.Nitride.IO\MfGames.Nitride.IO.csproj", "{534BF940-25B2-4948-A101-7890CC9C4EA5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Markdown", "src\MfGames.Nitride.Markdown\MfGames.Nitride.Markdown.csproj", "{41FF3823-7008-43B1-AD6A-92437E0600B7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride", "src\MfGames.Nitride\MfGames.Nitride.csproj", "{757BA115-3465-46C5-ADDB-7B96D6900F33}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Slugs", "src\MfGames.Nitride.Slugs\MfGames.Nitride.Slugs.csproj", "{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Temporal", "src\MfGames.Nitride.Temporal\MfGames.Nitride.Temporal.csproj", "{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Yaml", "src\MfGames.Nitride.Yaml\MfGames.Nitride.Yaml.csproj", "{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{251D9C68-34EB-439D-B167-688BCC47DA17}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.IO.Tests", "tests\MfGames.Nitride.IO.Tests\MfGames.Nitride.IO.Tests.csproj", "{72A3E65B-8E73-40E9-8325-641BAF6B8744}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Tests", "tests\MfGames.Nitride.Tests\MfGames.Nitride.Tests.csproj", "{F940CD28-6867-4E5B-BC27-F476B3BEB49A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Yaml.Tests", "tests\MfGames.Nitride.Yaml.Tests\MfGames.Nitride.Yaml.Tests.csproj", "{29743817-A401-458F-9DD0-AF3579965953}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{47461A29-E502-4B0E-AAF5-D87C4B93AB6D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CopyFiles", "examples\CopyFiles\CopyFiles.csproj", "{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Slugs.Tests", "tests\MfGames.Nitride.Slugs.Tests\MfGames.Nitride.Slugs.Tests.csproj", "{C49E07D0-CD32-4332-90FA-07494195CAC4}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Temporal.Tests", "tests\MfGames.Nitride.Temporal.Tests\MfGames.Nitride.Temporal.Tests.csproj", "{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Markdown.Tests", "tests\MfGames.Nitride.Markdown.Tests\MfGames.Nitride.Markdown.Tests.csproj", "{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Json", "src\MfGames.Nitride.Json\MfGames.Nitride.Json.csproj", "{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Json.Tests", "tests\MfGames.Nitride.Json.Tests\MfGames.Nitride.Json.Tests.csproj", "{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Temporal.Schedules", "src\MfGames.Nitride.Temporal.Schedules\MfGames.Nitride.Temporal.Schedules.csproj", "{6AC8F985-B11B-44F4-A000-DFEAFEF59754}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MfGames.Nitride.Temporal.Schedules.Tests", "tests\MfGames.Nitride.Temporal.Schedules.Tests\MfGames.Nitride.Temporal.Schedules.Tests.csproj", "{CA009524-E64A-4380-874E-C9D19D868572}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|x64.Build.0 = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB}.Release|x86.Build.0 = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF}.Release|x86.Build.0 = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|x64.Build.0 = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6}.Release|x86.Build.0 = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|x64.Build.0 = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125}.Release|x86.Build.0 = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|x64.Build.0 = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6}.Release|x86.Build.0 = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|x64.Build.0 = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1}.Release|x86.Build.0 = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|x64.Build.0 = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5}.Release|x86.Build.0 = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|x64.Build.0 = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7}.Release|x86.Build.0 = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|x64.Build.0 = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33}.Release|x86.Build.0 = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|x64.Build.0 = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5}.Release|x86.Build.0 = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|x64.Build.0 = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9}.Release|x86.Build.0 = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837}.Release|x86.Build.0 = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|x64.Build.0 = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744}.Release|x86.Build.0 = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|x64.Build.0 = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A}.Release|x86.Build.0 = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|x64.Build.0 = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{29743817-A401-458F-9DD0-AF3579965953}.Release|x86.Build.0 = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|x64.Build.0 = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1}.Release|x86.Build.0 = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|x64.Build.0 = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4}.Release|x86.Build.0 = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|x64.Build.0 = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266}.Release|x86.Build.0 = Release|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Release|x64.Build.0 = Release|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65}.Release|x86.Build.0 = Release|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Release|x64.Build.0 = Release|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113}.Release|x86.Build.0 = Release|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Release|x64.Build.0 = Release|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26}.Release|x86.Build.0 = Release|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Release|x64.Build.0 = Release|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754}.Release|x86.Build.0 = Release|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Release|x64.Build.0 = Release|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{CA009524-E64A-4380-874E-C9D19D868572}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{D480943C-764D-4A8A-B546-642ED10586BB} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{1204DECC-654A-433A-BF82-53F98AB24DCF} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{23C7CBF7-9624-457A-8296-C03F75BC9BC6} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{4ACB11B7-1EEB-48E7-845A-528770839125} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{56E595A6-7880-416E-B328-93B9617F92A6} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{3F9292D3-DA50-4DBA-AE90-E33E462470A1} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{534BF940-25B2-4948-A101-7890CC9C4EA5} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{41FF3823-7008-43B1-AD6A-92437E0600B7} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{757BA115-3465-46C5-ADDB-7B96D6900F33} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{17BF2A03-2C1D-4F75-9C18-B4341FAAF1A5} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{FEFFA469-245E-45A7-A094-3F0E89CEF3A9} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{1A5B4B4D-CF32-4458-8F2C-83A2AE494837} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{72A3E65B-8E73-40E9-8325-641BAF6B8744} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{F940CD28-6867-4E5B-BC27-F476B3BEB49A} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{29743817-A401-458F-9DD0-AF3579965953} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{2C92A626-7A14-4FDB-906B-E7FA5FF18CC1} = {47461A29-E502-4B0E-AAF5-D87C4B93AB6D}
|
||||
{C49E07D0-CD32-4332-90FA-07494195CAC4} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{0B74A4DE-4F92-44EE-8273-E5A15EAB4266} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{2AAE2B69-A93D-4045-B7E6-A32ED08D0D65} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{9A0D2BEE-859A-4E74-8CA7-5E0FB7C2B113} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{7CCC3A82-D5FE-4D54-9751-5E7985DE1F26} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
{6AC8F985-B11B-44F4-A000-DFEAFEF59754} = {570184FD-ECE4-4EC8-86E1-C1265E17D647}
|
||||
{CA009524-E64A-4380-874E-C9D19D868572} = {251D9C68-34EB-439D-B167-688BCC47DA17}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -1371,5 +1371,7 @@ using(DataAccessAdapter dataAccessAdapter = new DataAccessAdapter(ConnectionStri
|
|||
<s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F87CBA43E9CDCC41A45B39A2A2A25764/Scope/=2C285F182AC98D44B0B4F29D4D2149EC/@KeyIndexDefined">True</s:Boolean>
|
||||
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F87CBA43E9CDCC41A45B39A2A2A25764/Scope/=2C285F182AC98D44B0B4F29D4D2149EC/CustomProperties/=minimumLanguageVersion/@EntryIndexedValue">2.0</s:String>
|
||||
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=F87CBA43E9CDCC41A45B39A2A2A25764/Scope/=2C285F182AC98D44B0B4F29D4D2149EC/Type/@EntryValue">InCSharpStatement</s:String>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=gemtext/@EntryIndexedValue">True</s:Boolean>
|
||||
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Tocks/@EntryIndexedValue">True</s:Boolean>
|
||||
</wpf:ResourceDictionary>
|
13
NuGet.Config
13
NuGet.Config
|
@ -1,7 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
||||
<add key="mfgames" value="https://www.myget.org/F/mfgames/api/v3/index.json" protocolVersion="3" />
|
||||
<add key="mfgames.com" value="https://src.mfgames.com/api/packages/mfgames-cil/nuget/index.json" />
|
||||
</packageSources>
|
||||
<packageSourceMapping>
|
||||
<packageSource key="nuget.org">
|
||||
<package pattern="*" />
|
||||
</packageSource>
|
||||
<packageSource key="mfgames.com">
|
||||
<package pattern="MfGames.*" />
|
||||
</packageSource>
|
||||
</packageSourceMapping>
|
||||
</configuration>
|
||||
|
|
1
examples/.gitignore
vendored
Normal file
1
examples/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
artifacts/
|
|
@ -7,20 +7,20 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\src\Nitride.IO\Nitride.IO.csproj"/>
|
||||
<ProjectReference Include="..\..\src\Nitride\Nitride.csproj"/>
|
||||
<ProjectReference Include="..\..\tests\Nitride.Tests\Nitride.Tests.csproj"/>
|
||||
<ProjectReference Include="..\..\src\MfGames.Nitride.IO\MfGames.Nitride.IO.csproj"/>
|
||||
<ProjectReference Include="..\..\src\MfGames.Nitride\MfGames.Nitride.csproj"/>
|
||||
<ProjectReference Include="..\..\tests\MfGames.Nitride.Tests\MfGames.Nitride.Tests.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CliWrap" Version="3.4.4"/>
|
||||
<PackageReference Include="CliWrap" Version="3.5.0"/>
|
||||
<PackageReference Include="JunitXml.TestLogger" Version="3.0.114"/>
|
||||
<PackageReference Include="xunit" Version="2.4.1"/>
|
||||
<PackageReference Include="xunit" Version="2.4.2"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="MfGames.IO" Version="1.2.3"/>
|
||||
<PackageReference Include="MfGames.IO" Version="1.2.7"/>
|
||||
<PackageReference Include="coverlet.collector" Version="3.1.2">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Threading;
|
||||
|
||||
using Gallium;
|
||||
|
||||
using Nitride;
|
||||
using Nitride.IO.Contents;
|
||||
using Nitride.IO.Directories;
|
||||
using Nitride.IO.Paths;
|
||||
using Nitride.Pipelines;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride;
|
||||
using MfGames.Nitride.IO.Contents;
|
||||
using MfGames.Nitride.IO.Directories;
|
||||
using MfGames.Nitride.IO.Paths;
|
||||
using MfGames.Nitride.Pipelines;
|
||||
|
||||
namespace CopyFiles;
|
||||
|
||||
|
@ -45,7 +44,9 @@ public class CopyFilesPipeline : PipelineBase
|
|||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override IAsyncEnumerable<Entity> RunAsync(IEnumerable<Entity> _)
|
||||
public override IAsyncEnumerable<Entity> RunAsync(
|
||||
IEnumerable<Entity> _,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// We don't care about the incoming entities which means we can
|
||||
// ignore them and use the entities from the ReadFiles operation
|
||||
|
@ -75,8 +76,9 @@ public class CopyFilesPipeline : PipelineBase
|
|||
// read. Coming out of this, we will have one entity that fulfills:
|
||||
//
|
||||
// entity.Get<UPath> == "/output/a.txt"
|
||||
entities = entities.Run(this.removePathPrefix)
|
||||
.Run(this.addPathPrefix);
|
||||
entities = entities
|
||||
.Run(this.removePathPrefix, cancellationToken)
|
||||
.Run(this.addPathPrefix, cancellationToken);
|
||||
|
||||
// Then we write out the files to the output. First we make sure we
|
||||
// clear out the output. This operation performs an action when it
|
||||
|
@ -97,8 +99,9 @@ public class CopyFilesPipeline : PipelineBase
|
|||
// The third way is to use an extension on entities which lets us
|
||||
// chain calls, ala Gulp's pipelines. The below code does this along
|
||||
// with writing the files to the output.
|
||||
entities = entities.Run(this.clearDirectory)
|
||||
.Run(this.writeFiles);
|
||||
entities = entities
|
||||
.Run(this.clearDirectory, cancellationToken)
|
||||
.Run(this.writeFiles, cancellationToken);
|
||||
|
||||
// If we are chaining this pipeline into another, we return the
|
||||
// entities. Otherwise, we can just return an empty list. The
|
||||
|
|
|
@ -4,9 +4,8 @@ using System.Threading.Tasks;
|
|||
using Autofac;
|
||||
|
||||
using MfGames.IO.Extensions;
|
||||
|
||||
using Nitride;
|
||||
using Nitride.IO;
|
||||
using MfGames.Nitride;
|
||||
using MfGames.Nitride.IO;
|
||||
|
||||
namespace CopyFiles;
|
||||
|
||||
|
@ -27,7 +26,8 @@ public static class CopyFilesProgram
|
|||
// system. At the moment, we set the "root" directory which will
|
||||
// contains all the paths, both input and output.
|
||||
DirectoryInfo rootDir =
|
||||
typeof(CopyFilesProgram).GetDirectory()!.FindGitRoot()!.GetDirectory("examples/CopyFiles");
|
||||
typeof(CopyFilesProgram).GetDirectory()!.FindGitRoot()!
|
||||
.GetDirectory("examples/CopyFiles");
|
||||
|
||||
builder.WithRootDirectory(rootDir);
|
||||
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using CliWrap;
|
||||
|
||||
using MfGames.IO.Extensions;
|
||||
|
||||
using Nitride.Tests;
|
||||
using MfGames.Nitride.Tests;
|
||||
|
||||
using Xunit;
|
||||
using Xunit.Abstractions;
|
||||
|
@ -26,8 +27,10 @@ public class CopyFilesTest : NitrideTestBase
|
|||
public async Task Run()
|
||||
{
|
||||
// Figure out the paths for this test.
|
||||
DirectoryInfo rootDir =
|
||||
typeof(CopyFilesProgram).GetDirectory()!.FindGitRoot()!.GetDirectory("examples/CopyFiles");
|
||||
DirectoryInfo rootDir = typeof(CopyFilesProgram)
|
||||
.GetDirectory()
|
||||
!.FindGitRoot()!
|
||||
.GetDirectory("examples/CopyFiles");
|
||||
|
||||
DirectoryInfo outputDir = rootDir.GetDirectory("output");
|
||||
FileInfo projectFile = rootDir.GetFile("CopyFiles.csproj");
|
||||
|
@ -41,14 +44,31 @@ public class CopyFilesTest : NitrideTestBase
|
|||
}
|
||||
|
||||
// Execute the generator. This will throw if there is an exception.
|
||||
await Cli.Wrap("dotnet")
|
||||
.WithArguments(
|
||||
x => x.Add("run")
|
||||
.Add("--project")
|
||||
.Add(projectFile.FullName)
|
||||
.Add("--")
|
||||
.Add("build"))
|
||||
.ExecuteAsync();
|
||||
StringBuilder output = new();
|
||||
|
||||
try
|
||||
{
|
||||
await Cli
|
||||
.Wrap("dotnet")
|
||||
.WithWorkingDirectory(projectFile.DirectoryName!)
|
||||
.WithArguments(
|
||||
argumentsBuilder => argumentsBuilder
|
||||
.Add("run")
|
||||
.Add("--no-build")
|
||||
.Add("--")
|
||||
.Add("build"))
|
||||
.WithStandardOutputPipe(PipeTarget.ToStringBuilder(output))
|
||||
.WithStandardErrorPipe(PipeTarget.ToStringBuilder(output))
|
||||
.ExecuteAsync();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
this.Logger.Fatal(
|
||||
exception,
|
||||
"There was an exception running the command:\n\n{Log:l}",
|
||||
output);
|
||||
throw;
|
||||
}
|
||||
|
||||
// Make sure we have our output.
|
||||
FileInfo aFile = outputDir.GetFile("a.txt");
|
||||
|
|
12
flake.lock
12
flake.lock
|
@ -2,11 +2,11 @@
|
|||
"nodes": {
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1649676176,
|
||||
"narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=",
|
||||
"lastModified": 1667395993,
|
||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "a4b154ebbdc88c8498a5c7b01589addc9e9cb678",
|
||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -17,11 +17,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1651558728,
|
||||
"narHash": "sha256-8HzyRnWlgZluUrVFNOfZAOlA1fghpOSezXvxhalGMUo=",
|
||||
"lastModified": 1673631141,
|
||||
"narHash": "sha256-AprpYQ5JvLS4wQG/ghm2UriZ9QZXvAwh1HlgA/6ZEVQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cbe587c735b734405f56803e267820ee1559e6c1",
|
||||
"rev": "befc83905c965adfd33e5cae49acb0351f6e0404",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
pkgs.dotnet-sdk
|
||||
pkgs.lefthook
|
||||
pkgs.convco
|
||||
pkgs.nodePackages.prettier
|
||||
pkgs.nixfmt
|
||||
pkgs.jq
|
||||
];
|
||||
|
|
18
lefthook.yml
18
lefthook.yml
|
@ -1,13 +1,11 @@
|
|||
pre-push:
|
||||
parallel: true
|
||||
commit-msg:
|
||||
commands:
|
||||
commit-check:
|
||||
run: convco check
|
||||
run: convco check -n 1
|
||||
|
||||
pre-commit:
|
||||
parallel: true
|
||||
commands:
|
||||
prettier:
|
||||
run: prettier . --write --loglevel warn
|
||||
nixfmt:
|
||||
run: nixfmt flake.nix
|
||||
skip_output:
|
||||
- meta # Skips lefthook version printing
|
||||
- summary # Skips summary block (successful and failed steps) printing
|
||||
- success # Skips successful steps printing
|
||||
- failure # Skips failed steps printing
|
||||
- execution # Skips printing successfully executed commands and their output (but still prints failed executions)
|
||||
|
|
|
@ -2,5 +2,6 @@
|
|||
"title": "Nitride CIL",
|
||||
"slug": "nitride-cil",
|
||||
"status": "Active",
|
||||
"summary": "A entity-component-system (ECS) framework for building static websites and documentation."
|
||||
"maturity": "Unstable",
|
||||
"summary": "An entity-component-system (ECS) framework for building static websites and documentation."
|
||||
}
|
||||
|
|
|
@ -3,4 +3,5 @@
|
|||
cd $(dirname $0)/..
|
||||
./scripts/setup.sh || exit 1
|
||||
|
||||
echo "$(basename $0): building project"
|
||||
dotnet build
|
||||
|
|
|
@ -1,14 +1,4 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# Normalize our environment.
|
||||
cd $(dirname $0)/..
|
||||
./scripts/setup.sh || exit 1
|
||||
|
||||
# Format the .NET code
|
||||
dotnet format || exit 1
|
||||
|
||||
# Format using Prettier.
|
||||
prettier . --write --loglevel warn
|
||||
|
||||
# Format the Flake.
|
||||
nixfmt flake.nix
|
||||
lefthook run pre-commit
|
||||
|
|
|
@ -4,43 +4,49 @@ cd $(dirname $0)/..
|
|||
./scripts/setup.sh || exit 1
|
||||
|
||||
# Verify the input.
|
||||
if [ "x$NUGET_TOKEN" = "x" ]
|
||||
if [ "x$GITEA_TOKEN" = "x" ]
|
||||
then
|
||||
echo "the environment variable NUGET_TOKEN is not defined"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "x$NUGET_PUSH_URL" = "x" ]
|
||||
then
|
||||
echo "the environment variable NUGET_PUSH_URL is not defined"
|
||||
echo "the environment variable GITEA_TOKEN is not defined"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Clean up everything from the previous runs.
|
||||
echo "$(basename $0): cleaning project"
|
||||
dotnet clean
|
||||
rm -f src/*/bin/Debug/*.nupkg
|
||||
|
||||
# Version the file based on the Git repository.
|
||||
echo "$(basename $0): setting project version"
|
||||
(cd src && dotnet dotnet-gitversion /updateprojectfiles)
|
||||
SEMVER="v$(dotnet gitversion /output json | jq -r .SemVer)"
|
||||
|
||||
if [ "x$SEMVER" = "x" ]
|
||||
then
|
||||
echo "cannot figure out the semantic version"
|
||||
echo "$(basename $0): cannot figure out the semantic version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Build to pick up the new version.
|
||||
dotnet build
|
||||
echo "$(basename $0): building project $SEMVER"
|
||||
dotnet build || exit 1
|
||||
|
||||
# Create and publish the NuGet packages.
|
||||
dotnet pack --include-symbols --include-source
|
||||
dotnet nuget push src/*/bin/Debug/*.nupkg --api-key $NUGET_TOKEN --source $NUGET_PUSH_URL
|
||||
echo "$(basename $0): creating NuGet packages"
|
||||
dotnet pack -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg || exit 1
|
||||
|
||||
echo "$(basename $0): publishing NuGet package"
|
||||
dotnet nuget remove source mfgames.com >& /dev/null
|
||||
dotnet nuget add source --name mfgames.com https://src.mfgames.com/api/packages/mfgames-cil/nuget/index.json || exit 1
|
||||
dotnet nuget push --api-key $GITEA_TOKEN --skip-duplicate --source mfgames.com src/*/bin/Debug/*.nupkg || exit 1
|
||||
|
||||
# Tag and push, but only if we don't have a tag.
|
||||
if ! git tag | grep $SEMVER >& /dev/null
|
||||
then
|
||||
echo "tagging and pushing"
|
||||
echo "$(basename $0): tagging and pushing"
|
||||
git remote add publish https://dmoonfire:$GITEA_TOKEN@src.mfgames.com/mfgames-cil/$(basename $(git config --get remote.origin.url))
|
||||
git tag $SEMVER
|
||||
git push origin $SEMVER
|
||||
git push publish $SEMVER || exit 1
|
||||
git remote remove publish
|
||||
else
|
||||
echo "not tagging, already exists"
|
||||
echo "$(basename $0): not tagging, already exists"
|
||||
fi
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
cd $(dirname $0)/..
|
||||
|
||||
# Make sure we have the needed executables installed.
|
||||
for e in dotnet lefthook prettier nixfmt
|
||||
for e in dotnet lefthook nixfmt
|
||||
do
|
||||
if ! which $e >& /dev/null
|
||||
then
|
||||
|
@ -14,13 +14,15 @@ do
|
|||
done
|
||||
|
||||
# Make sure we have lefthook is installed.
|
||||
lefthook install
|
||||
if [ ! -f .git/hooks/pre-commit ]
|
||||
then
|
||||
echo "$(basename $0): installing lefthook"
|
||||
lefthook install
|
||||
fi
|
||||
|
||||
# Make sure our tools are installed.
|
||||
echo "$(basename $0): install .NET tools"
|
||||
dotnet tool restore
|
||||
|
||||
# Make sure everything is the right version.
|
||||
dotnet gitversion /updateprojectfiles
|
||||
|
||||
# Everything is good.
|
||||
exit 0
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
cd $(dirname $0)/..
|
||||
./scripts/setup.sh || exit 1
|
||||
|
||||
dotnet test --test-adapter-path:. --logger:"junit;LogFilePath=../artifacts/{assembly}-test-result.xml;MethodFormat=Default;FailureBodyFormat=Verbose" --collect:"XPlat Code Coverage"
|
||||
dotnet tool run reportgenerator -reports:tests/*/TestResults/*/coverage.cobertura.xml -targetdir:./coverage "-reporttypes:Cobertura;TextSummary"
|
||||
grep "Line coverage" coverage/Summary.txt
|
||||
if ls ./tests/*/*.csproj >& /dev/null
|
||||
then
|
||||
./scripts/setup.sh || exit 1
|
||||
|
||||
dotnet test --test-adapter-path:. --logger:"junit;LogFilePath=../artifacts/{assembly}-test-result.xml;MethodFormat=Default;FailureBodyFormat=Verbose" --collect:"XPlat Code Coverage"
|
||||
dotnet tool run reportgenerator -reports:tests/*/TestResults/*/coverage.cobertura.xml -targetdir:./coverage "-reporttypes:Cobertura;TextSummary"
|
||||
grep "Line coverage" coverage/Summary.txt
|
||||
fi
|
||||
|
|
4
scripts/update-template.sh
Executable file
4
scripts/update-template.sh
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
cd $(dirname $0)/..
|
||||
git pull template main --no-rebase
|
|
@ -1,13 +0,0 @@
|
|||
mode: ContinuousDelivery
|
||||
increment: Inherit
|
||||
continuous-delivery-fallback-tag: ci
|
||||
|
||||
major-version-bump-message: "^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\\([\\w\\s-]*\\))?(!:|:.*\\n\\n((.+\\n)+\\n)?BREAKING CHANGE:\\s.+)"
|
||||
minor-version-bump-message: "^(feat)(\\([\\w\\s-]*\\))?:"
|
||||
patch-version-bump-message: "^(build|chore|ci|docs|fix|perf|refactor|revert|style|test)(\\([\\w\\s-]*\\))?:"
|
||||
|
||||
assembly-versioning-scheme: MajorMinorPatch
|
||||
assembly-file-versioning-scheme: MajorMinorPatch
|
||||
assembly-informational-format: "{InformationalVersion}"
|
||||
|
||||
tag-prefix: "[vV]"
|
|
@ -1,6 +1,6 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace Nitride.Calendar;
|
||||
namespace MfGames.Nitride.Calendar;
|
||||
|
||||
public class CreateCalendarValidator : AbstractValidator<CreateCalender>
|
||||
{
|
|
@ -1,23 +1,24 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using Gallium;
|
||||
|
||||
using Ical.Net.CalendarComponents;
|
||||
using Ical.Net.DataTypes;
|
||||
using Ical.Net.Serialization;
|
||||
|
||||
using Nitride.Contents;
|
||||
using Nitride.Temporal;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Contents;
|
||||
using MfGames.Nitride.Generators;
|
||||
using MfGames.Nitride.Temporal;
|
||||
|
||||
using NodaTime;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.Calendar;
|
||||
namespace MfGames.Nitride.Calendar;
|
||||
|
||||
/// <summary>
|
||||
/// Creates an iCalendar file from all the entities passed into the method
|
||||
|
@ -27,13 +28,13 @@ namespace Nitride.Calendar;
|
|||
[WithProperties]
|
||||
public partial class CreateCalender : OperationBase
|
||||
{
|
||||
private readonly Timekeeper clock;
|
||||
private readonly TimeService clock;
|
||||
|
||||
private readonly IValidator<CreateCalender> validator;
|
||||
|
||||
public CreateCalender(
|
||||
IValidator<CreateCalender> validator,
|
||||
Timekeeper clock)
|
||||
TimeService clock)
|
||||
{
|
||||
this.validator = validator;
|
||||
this.clock = clock;
|
||||
|
@ -57,17 +58,21 @@ public partial class CreateCalender : OperationBase
|
|||
public UPath? Path { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public override IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public override IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
||||
SplitEntityEnumerations split = input.SplitEntity<Instant>();
|
||||
IEnumerable<Entity> datedAndCalendars = this.CreateCalendarEntity(split.HasAll);
|
||||
IEnumerable<Entity> datedAndCalendars =
|
||||
this.CreateCalendarEntity(split.HasAll);
|
||||
|
||||
return datedAndCalendars.Union(split.NotHasAll);
|
||||
}
|
||||
|
||||
private IEnumerable<Entity> CreateCalendarEntity(IEnumerable<Entity> entities)
|
||||
private IEnumerable<Entity> CreateCalendarEntity(
|
||||
IEnumerable<Entity> entities)
|
||||
{
|
||||
// Create the calendar in the same time zone as the rest of the system.
|
||||
var calendar = new Ical.Net.Calendar();
|
||||
|
@ -76,7 +81,8 @@ public partial class CreateCalender : OperationBase
|
|||
|
||||
// Go through the events and add all of them.
|
||||
var input = entities.ToList();
|
||||
IEnumerable<CalendarEvent> events = input.Select(this.CreateCalendarEvent);
|
||||
IEnumerable<CalendarEvent> events =
|
||||
input.Select(this.CreateCalendarEvent);
|
||||
|
||||
calendar.Events.AddRange(events);
|
||||
|
11
src/MfGames.Nitride.Calendar/IsCalendar.cs
Normal file
11
src/MfGames.Nitride.Calendar/IsCalendar.cs
Normal file
|
@ -0,0 +1,11 @@
|
|||
using MfGames.Nitride.Generators;
|
||||
|
||||
namespace MfGames.Nitride.Calendar;
|
||||
|
||||
/// <summary>
|
||||
/// A marker component for identifying an entity that represents a calendar.
|
||||
/// </summary>
|
||||
[SingletonComponent]
|
||||
public partial class IsCalendar
|
||||
{
|
||||
}
|
|
@ -10,16 +10,16 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride.IO\Nitride.IO.csproj" />
|
||||
<ProjectReference Include="..\Nitride.Temporal\Nitride.Temporal.csproj" />
|
||||
<ProjectReference Include="..\Nitride\Nitride.csproj" />
|
||||
<ProjectReference Include="..\MfGames.Nitride.IO\MfGames.Nitride.IO.csproj"/>
|
||||
<ProjectReference Include="..\MfGames.Nitride.Temporal\MfGames.Nitride.Temporal.csproj"/>
|
||||
<ProjectReference Include="..\MfGames.Nitride\MfGames.Nitride.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Gallium" Version="1.4.0" />
|
||||
<PackageReference Include="Ical.Net" Version="4.2.0" />
|
||||
<PackageReference Include="NodaTime" Version="3.1.0" />
|
||||
<PackageReference Include="Zio" Version="0.15.0" />
|
||||
<PackageReference Include="MfGames.Gallium" Version="0.4.0"/>
|
||||
<PackageReference Include="Ical.Net" Version="4.2.0"/>
|
||||
<PackageReference Include="NodaTime" Version="3.1.2"/>
|
||||
<PackageReference Include="Zio" Version="0.15.0"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Include the source generator -->
|
||||
|
@ -28,7 +28,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride.Generators\Nitride.Generators.csproj">
|
||||
<ProjectReference Include="..\MfGames.Nitride.Generators\MfGames.Nitride.Generators.csproj">
|
||||
<OutputItemType>Analyzer</OutputItemType>
|
||||
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
|
@ -1,14 +1,15 @@
|
|||
using Autofac;
|
||||
|
||||
using Nitride.Temporal;
|
||||
using MfGames.Nitride.Temporal.Setup;
|
||||
|
||||
namespace Nitride.Calendar;
|
||||
namespace MfGames.Nitride.Calendar;
|
||||
|
||||
public static class NitrideCalendarBuilderExtensions
|
||||
{
|
||||
public static NitrideBuilder UseCalendar(this NitrideBuilder builder)
|
||||
{
|
||||
return builder.UseTemporal()
|
||||
return builder
|
||||
.UseTemporal()
|
||||
.ConfigureContainer(x => x.RegisterModule<NitrideCalendarModule>());
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
using Autofac;
|
||||
|
||||
namespace Nitride.Calendar;
|
||||
namespace MfGames.Nitride.Calendar;
|
||||
|
||||
public class NitrideCalendarModule : Module
|
||||
{
|
|
@ -1,13 +1,14 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using Gallium;
|
||||
|
||||
using Nitride.Contents;
|
||||
using Nitride.Feeds.Structure;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Contents;
|
||||
using MfGames.Nitride.Feeds.Structure;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
using NodaTime;
|
||||
|
||||
|
@ -15,7 +16,7 @@ using Serilog;
|
|||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.Feeds;
|
||||
namespace MfGames.Nitride.Feeds;
|
||||
|
||||
/// <summary>
|
||||
/// Creates various feeds from the given input.
|
||||
|
@ -93,7 +94,9 @@ public partial class CreateAtomFeed : OperationBase
|
|||
public Func<Entity, Uri>? GetUrl { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public override IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public override IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace Nitride.Feeds;
|
||||
namespace MfGames.Nitride.Feeds;
|
||||
|
||||
public class CreateAtomFeedValidator : AbstractValidator<CreateAtomFeed>
|
||||
{
|
|
@ -1,4 +1,4 @@
|
|||
namespace Nitride.Feeds;
|
||||
namespace MfGames.Nitride.Feeds;
|
||||
|
||||
/// <summary>
|
||||
/// A marker component that indicates this entity has a feed associated with
|
11
src/MfGames.Nitride.Feeds/IsFeed.cs
Normal file
11
src/MfGames.Nitride.Feeds/IsFeed.cs
Normal file
|
@ -0,0 +1,11 @@
|
|||
using MfGames.Nitride.Generators;
|
||||
|
||||
namespace MfGames.Nitride.Feeds;
|
||||
|
||||
/// <summary>
|
||||
/// A marker component that indicates this page is a feed.
|
||||
/// </summary>
|
||||
[SingletonComponent]
|
||||
public partial class IsFeed
|
||||
{
|
||||
}
|
|
@ -10,15 +10,15 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride.IO\Nitride.IO.csproj" />
|
||||
<ProjectReference Include="..\Nitride.Temporal\Nitride.Temporal.csproj" />
|
||||
<ProjectReference Include="..\Nitride\Nitride.csproj" />
|
||||
<ProjectReference Include="..\MfGames.Nitride.IO\MfGames.Nitride.IO.csproj"/>
|
||||
<ProjectReference Include="..\MfGames.Nitride.Temporal\MfGames.Nitride.Temporal.csproj"/>
|
||||
<ProjectReference Include="..\MfGames.Nitride\MfGames.Nitride.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Gallium" Version="1.4.0" />
|
||||
<PackageReference Include="NodaTime" Version="3.1.0" />
|
||||
<PackageReference Include="Zio" Version="0.15.0" />
|
||||
<PackageReference Include="MfGames.Gallium" Version="0.4.0"/>
|
||||
<PackageReference Include="NodaTime" Version="3.1.2"/>
|
||||
<PackageReference Include="Zio" Version="0.15.0"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Include the source generator -->
|
||||
|
@ -27,7 +27,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride.Generators\Nitride.Generators.csproj">
|
||||
<ProjectReference Include="..\MfGames.Nitride.Generators\MfGames.Nitride.Generators.csproj">
|
||||
<OutputItemType>Analyzer</OutputItemType>
|
||||
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
|
@ -1,8 +1,8 @@
|
|||
using Autofac;
|
||||
|
||||
using Nitride.Temporal;
|
||||
using MfGames.Nitride.Temporal.Setup;
|
||||
|
||||
namespace Nitride.Feeds;
|
||||
namespace MfGames.Nitride.Feeds;
|
||||
|
||||
public static class NitrideFeedsBuilderExtensions
|
||||
{
|
|
@ -1,6 +1,6 @@
|
|||
using Autofac;
|
||||
|
||||
namespace Nitride.Feeds;
|
||||
namespace MfGames.Nitride.Feeds;
|
||||
|
||||
public class NitrideFeedsModule : Module
|
||||
{
|
|
@ -1,6 +1,8 @@
|
|||
using System.Xml.Linq;
|
||||
|
||||
namespace Nitride.Feeds.Structure;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
namespace MfGames.Nitride.Feeds.Structure;
|
||||
|
||||
/// <summary>
|
||||
/// The type-safe structure for an author element.
|
||||
|
@ -29,7 +31,10 @@ public partial class AtomAuthor
|
|||
|
||||
if (!string.IsNullOrEmpty(this.Name))
|
||||
{
|
||||
author.Add(new XElement(XmlConstants.AtomNamespace + "name", new XText(this.Name)));
|
||||
author.Add(
|
||||
new XElement(
|
||||
XmlConstants.AtomNamespace + "name",
|
||||
new XText(this.Name)));
|
||||
}
|
||||
|
||||
return author;
|
|
@ -1,7 +1,9 @@
|
|||
using System;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Nitride.Feeds.Structure;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
namespace MfGames.Nitride.Feeds.Structure;
|
||||
|
||||
/// <summary>
|
||||
/// The type-safe structure for a entry's category element.
|
||||
|
@ -36,7 +38,9 @@ public partial class AtomCategory
|
|||
throw new NullReferenceException("Category term cannot be null.");
|
||||
}
|
||||
|
||||
var elem = new XElement(XmlConstants.AtomNamespace + "category", new XAttribute("term", this.Term));
|
||||
var elem = new XElement(
|
||||
XmlConstants.AtomNamespace + "category",
|
||||
new XAttribute("term", this.Term));
|
||||
|
||||
if (this.Scheme != null)
|
||||
{
|
|
@ -2,11 +2,13 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Xml.Linq;
|
||||
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
using NodaTime;
|
||||
|
||||
using static Nitride.Feeds.Structure.XmlConstants;
|
||||
using static MfGames.Nitride.Feeds.Structure.XmlConstants;
|
||||
|
||||
namespace Nitride.Feeds.Structure;
|
||||
namespace MfGames.Nitride.Feeds.Structure;
|
||||
|
||||
/// <summary>
|
||||
/// The type-safe structure for an entry in the Atom feed.
|
|
@ -3,9 +3,9 @@ using System.Xml.Linq;
|
|||
|
||||
using NodaTime;
|
||||
|
||||
using static Nitride.Feeds.Structure.XmlConstants;
|
||||
using static MfGames.Nitride.Feeds.Structure.XmlConstants;
|
||||
|
||||
namespace Nitride.Feeds.Structure;
|
||||
namespace MfGames.Nitride.Feeds.Structure;
|
||||
|
||||
/// <summary>
|
||||
/// The type-safe structure of the top-level feed.
|
|
@ -1,6 +1,6 @@
|
|||
using System.Xml.Linq;
|
||||
|
||||
namespace Nitride.Feeds.Structure;
|
||||
namespace MfGames.Nitride.Feeds.Structure;
|
||||
|
||||
/// <summary>
|
||||
/// Helper methods for working with XML elements.
|
||||
|
@ -24,7 +24,10 @@ public static class AtomHelper
|
|||
{
|
||||
if (!string.IsNullOrWhiteSpace(text))
|
||||
{
|
||||
elem.Add(new XElement(XmlConstants.AtomNamespace + name, new XText(text)));
|
||||
elem.Add(
|
||||
new XElement(
|
||||
XmlConstants.AtomNamespace + name,
|
||||
new XText(text)));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
using System.Xml.Linq;
|
||||
|
||||
namespace Nitride.Feeds.Structure;
|
||||
namespace MfGames.Nitride.Feeds.Structure;
|
||||
|
||||
/// <summary>
|
||||
/// Common constants used while generating feeds.
|
||||
|
@ -10,10 +10,12 @@ public static class XmlConstants
|
|||
/// <summary>
|
||||
/// The XML namespace for Atom feeds.
|
||||
/// </summary>
|
||||
public static readonly XNamespace AtomNamespace = "http://www.w3.org/2005/Atom";
|
||||
public static readonly XNamespace AtomNamespace =
|
||||
"http://www.w3.org/2005/Atom";
|
||||
|
||||
/// <summary>
|
||||
/// The XML namespace for media.
|
||||
/// </summary>
|
||||
public static readonly XNamespace MediaNamespace = "http://search.yahoo.com/mrss/";
|
||||
public static readonly XNamespace MediaNamespace =
|
||||
"http://search.yahoo.com/mrss/";
|
||||
}
|
|
@ -1,10 +1,12 @@
|
|||
namespace Nitride.Gemtext;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
namespace MfGames.Nitride.Gemtext;
|
||||
|
||||
/// <summary>
|
||||
/// A marker component for indicating that an entity is Gemtext, the format
|
||||
/// for text files using the Gemini protocol.
|
||||
/// </summary>
|
||||
public record IsGemtext
|
||||
[SingletonComponent]
|
||||
public partial class IsGemtext
|
||||
{
|
||||
public static IsGemtext Instance { get; } = new();
|
||||
}
|
|
@ -9,7 +9,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride\Nitride.csproj"/>
|
||||
<ProjectReference Include="..\MfGames.Nitride\MfGames.Nitride.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Include the source generator -->
|
||||
|
@ -18,7 +18,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride.Generators\Nitride.Generators.csproj">
|
||||
<ProjectReference Include="..\MfGames.Nitride.Generators\MfGames.Nitride.Generators.csproj">
|
||||
<OutputItemType>Analyzer</OutputItemType>
|
||||
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
|
@ -1,11 +1,12 @@
|
|||
using Autofac;
|
||||
|
||||
namespace Nitride.Gemtext;
|
||||
namespace MfGames.Nitride.Gemtext;
|
||||
|
||||
public static class NitrideGemtextBuilderExtensions
|
||||
{
|
||||
public static NitrideBuilder UseGemtext(this NitrideBuilder builder)
|
||||
{
|
||||
return builder.ConfigureContainer(x => x.RegisterModule<NitrideGemtextModule>());
|
||||
return builder.ConfigureContainer(
|
||||
x => x.RegisterModule<NitrideGemtextModule>());
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
using Autofac;
|
||||
|
||||
namespace Nitride.Gemtext;
|
||||
namespace MfGames.Nitride.Gemtext;
|
||||
|
||||
public class NitrideGemtextModule : Module
|
||||
{
|
|
@ -2,13 +2,13 @@ using System.Collections.Generic;
|
|||
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
|
||||
namespace Nitride.Generators;
|
||||
namespace MfGames.Nitride.Generators;
|
||||
|
||||
/// <summary>
|
||||
/// Internal class that consolidates all of the information needed to generate a
|
||||
/// file.
|
||||
/// class for adding With* properties.
|
||||
/// </summary>
|
||||
internal class WithPropertyClass
|
||||
public class ClassAttributeReference
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the syntax for the class declaration.
|
|
@ -0,0 +1,66 @@
|
|||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.Text;
|
||||
|
||||
namespace MfGames.Nitride.Generators;
|
||||
|
||||
/// <summary>
|
||||
/// Base class for classes marked with an attribute.
|
||||
/// </summary>
|
||||
public abstract class ClassAttributeSourceGeneratorBase<TSyntaxReceiver>
|
||||
: ISourceGenerator
|
||||
where TSyntaxReceiver : ClassAttributeSyntaxReceiverBase
|
||||
{
|
||||
public void Execute(GeneratorExecutionContext context)
|
||||
{
|
||||
// Get the generator infrastructure will create a receiver and
|
||||
// populate it we can retrieve the populated instance via the
|
||||
// context.
|
||||
if (context.SyntaxReceiver is not TSyntaxReceiver syntaxReceiver)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Report any messages.
|
||||
foreach (string? message in syntaxReceiver.Messages)
|
||||
{
|
||||
context.Warning(
|
||||
MessageCode.Debug,
|
||||
Location.Create(
|
||||
"Temporary.g.cs",
|
||||
TextSpan.FromBounds(0, 0),
|
||||
new LinePositionSpan(
|
||||
new LinePosition(0, 0),
|
||||
new LinePosition(0, 0))),
|
||||
"{0}: Syntax Message: {1}",
|
||||
this.GetType().Name,
|
||||
message);
|
||||
}
|
||||
|
||||
// If we didn't find anything, then there is nothing to do.
|
||||
if (syntaxReceiver.ReferenceList.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Go through each one.
|
||||
foreach (ClassAttributeReference reference in syntaxReceiver
|
||||
.ReferenceList)
|
||||
{
|
||||
this.GenerateClassFile(context, reference);
|
||||
}
|
||||
}
|
||||
|
||||
public void Initialize(GeneratorInitializationContext context)
|
||||
{
|
||||
// Register a factory that can create our custom syntax receiver
|
||||
context.RegisterForSyntaxNotifications(
|
||||
() => this.CreateSyntaxReceiver(context));
|
||||
}
|
||||
|
||||
protected abstract TSyntaxReceiver CreateSyntaxReceiver(
|
||||
GeneratorInitializationContext context);
|
||||
|
||||
protected abstract void GenerateClassFile(
|
||||
GeneratorExecutionContext context,
|
||||
ClassAttributeReference reference);
|
||||
}
|
|
@ -4,20 +4,28 @@ using System.Linq;
|
|||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
|
||||
namespace Nitride.Generators;
|
||||
namespace MfGames.Nitride.Generators;
|
||||
|
||||
internal class WithPropertySyntaxReceiver : ISyntaxReceiver
|
||||
public abstract class ClassAttributeSyntaxReceiverBase : ISyntaxReceiver
|
||||
{
|
||||
private readonly string attributeName;
|
||||
|
||||
private readonly GeneratorInitializationContext context;
|
||||
|
||||
public WithPropertySyntaxReceiver(GeneratorInitializationContext context)
|
||||
public ClassAttributeSyntaxReceiverBase(
|
||||
GeneratorInitializationContext context,
|
||||
string attributeName)
|
||||
{
|
||||
this.context = context;
|
||||
this.ClassList = new List<WithPropertyClass>();
|
||||
this.attributeName = attributeName;
|
||||
this.ReferenceList = new List<ClassAttributeReference>();
|
||||
this.Messages = new List<string>();
|
||||
}
|
||||
|
||||
public List<WithPropertyClass> ClassList { get; }
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether we should debug parsing attributes.
|
||||
/// </summary>
|
||||
public bool DebugAttributes { get; set; }
|
||||
|
||||
public List<string> Messages { get; }
|
||||
|
||||
|
@ -26,6 +34,8 @@ internal class WithPropertySyntaxReceiver : ISyntaxReceiver
|
|||
/// </summary>
|
||||
public string? Namespace { get; private set; }
|
||||
|
||||
public List<ClassAttributeReference> ReferenceList { get; }
|
||||
|
||||
public List<UsingDirectiveSyntax> UsingDirectiveList { get; set; } = new();
|
||||
|
||||
public void OnVisitSyntaxNode(SyntaxNode syntaxNode)
|
||||
|
@ -64,21 +74,30 @@ internal class WithPropertySyntaxReceiver : ISyntaxReceiver
|
|||
}
|
||||
|
||||
// See if the class has our set properties attribute.
|
||||
bool found = cds.AttributeLists.AsEnumerable()
|
||||
var attributes = cds.AttributeLists
|
||||
.AsEnumerable()
|
||||
.SelectMany(x => x.Attributes)
|
||||
.Select(x => x.Name.ToString())
|
||||
.ToList();
|
||||
bool found = attributes
|
||||
.Any(
|
||||
x => x switch
|
||||
{
|
||||
"WithProperties" => true,
|
||||
"WithPropertiesAttribute" => true,
|
||||
_ => false,
|
||||
});
|
||||
x => x == this.attributeName
|
||||
|| x == $"{this.attributeName}Attribute");
|
||||
|
||||
if (this.DebugAttributes)
|
||||
{
|
||||
this.Messages.Add(
|
||||
string.Format(
|
||||
"Parsing {0} found? {1} from attributes [{2}]",
|
||||
cds.Identifier,
|
||||
found,
|
||||
string.Join(", ", attributes)));
|
||||
}
|
||||
|
||||
if (found)
|
||||
{
|
||||
this.ClassList.Add(
|
||||
new WithPropertyClass
|
||||
this.ReferenceList.Add(
|
||||
new ClassAttributeReference
|
||||
{
|
||||
Namespace = this.Namespace!,
|
||||
UsingDirectiveList = this.UsingDirectiveList,
|
|
@ -1,6 +1,6 @@
|
|||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace Nitride.Generators;
|
||||
namespace MfGames.Nitride.Generators;
|
||||
|
||||
/// <summary>
|
||||
/// Various wrappers around the diagnostics to simplify generation.
|
||||
|
@ -18,7 +18,7 @@ public static class CodeAnalysisExtensions
|
|||
this GeneratorExecutionContext context,
|
||||
MessageCode messageCode,
|
||||
string format,
|
||||
params object[] parameters)
|
||||
params object?[] parameters)
|
||||
{
|
||||
Error(context, messageCode, null, format, parameters);
|
||||
}
|
||||
|
@ -36,9 +36,14 @@ public static class CodeAnalysisExtensions
|
|||
MessageCode messageCode,
|
||||
Location? location,
|
||||
string format,
|
||||
params object[] parameters)
|
||||
params object?[] parameters)
|
||||
{
|
||||
context.Message(messageCode, location, DiagnosticSeverity.Error, format, parameters);
|
||||
context.Message(
|
||||
messageCode,
|
||||
location,
|
||||
DiagnosticSeverity.Error,
|
||||
format,
|
||||
parameters);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -52,7 +57,7 @@ public static class CodeAnalysisExtensions
|
|||
this GeneratorExecutionContext context,
|
||||
MessageCode messageCode,
|
||||
string format,
|
||||
params object[] parameters)
|
||||
params object?[] parameters)
|
||||
{
|
||||
Information(context, messageCode, null, format, parameters);
|
||||
}
|
||||
|
@ -70,9 +75,14 @@ public static class CodeAnalysisExtensions
|
|||
MessageCode messageCode,
|
||||
Location? location,
|
||||
string format,
|
||||
params object[] parameters)
|
||||
params object?[] parameters)
|
||||
{
|
||||
context.Message(messageCode, location, DiagnosticSeverity.Info, format, parameters);
|
||||
context.Message(
|
||||
messageCode,
|
||||
location,
|
||||
DiagnosticSeverity.Info,
|
||||
format,
|
||||
parameters);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -86,7 +96,7 @@ public static class CodeAnalysisExtensions
|
|||
this GeneratorExecutionContext context,
|
||||
MessageCode messageCode,
|
||||
string format,
|
||||
params object[] parameters)
|
||||
params object?[] parameters)
|
||||
{
|
||||
Warning(context, messageCode, null, format, parameters);
|
||||
}
|
||||
|
@ -104,9 +114,14 @@ public static class CodeAnalysisExtensions
|
|||
MessageCode messageCode,
|
||||
Location? location,
|
||||
string format,
|
||||
params object[] parameters)
|
||||
params object?[] parameters)
|
||||
{
|
||||
context.Message(messageCode, location, DiagnosticSeverity.Warning, format, parameters);
|
||||
context.Message(
|
||||
messageCode,
|
||||
location,
|
||||
DiagnosticSeverity.Warning,
|
||||
format,
|
||||
parameters);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -124,7 +139,7 @@ public static class CodeAnalysisExtensions
|
|||
Location? location,
|
||||
DiagnosticSeverity severity,
|
||||
string format,
|
||||
params object[] parameters)
|
||||
params object?[] parameters)
|
||||
{
|
||||
context.ReportDiagnostic(
|
||||
Diagnostic.Create(
|
||||
|
@ -134,7 +149,10 @@ public static class CodeAnalysisExtensions
|
|||
severity,
|
||||
severity,
|
||||
true,
|
||||
severity is DiagnosticSeverity.Warning or DiagnosticSeverity.Info ? 4 : 0,
|
||||
severity is DiagnosticSeverity.Warning
|
||||
or DiagnosticSeverity.Info
|
||||
? 4
|
||||
: 0,
|
||||
location: location));
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
namespace Nitride.Generators;
|
||||
namespace MfGames.Nitride.Generators;
|
||||
|
||||
/// <summary>
|
||||
/// All the error messages produced by the generators.
|
|
@ -10,10 +10,10 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Gallium" Version="1.4.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.1.0" />
|
||||
<PackageReference Include="MfGames.Gallium" Version="0.4.0"/>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.3.1"/>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.3.1"/>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.3.1"/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -0,0 +1,91 @@
|
|||
using System.Text;
|
||||
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
using Microsoft.CodeAnalysis.Text;
|
||||
|
||||
namespace MfGames.Nitride.Generators;
|
||||
|
||||
/// <summary>
|
||||
/// Implements a source generator that creates the additional properties
|
||||
/// and methods for a singleton component including the constructor and
|
||||
/// instance methods, along with extension methods for adding them to entities.
|
||||
/// </summary>
|
||||
[Generator]
|
||||
public class SingletonComponentSourceGenerator
|
||||
: ClassAttributeSourceGeneratorBase<SingletonComponentSyntaxReceiver>
|
||||
{
|
||||
protected override SingletonComponentSyntaxReceiver CreateSyntaxReceiver(
|
||||
GeneratorInitializationContext context)
|
||||
{
|
||||
return new SingletonComponentSyntaxReceiver(context);
|
||||
}
|
||||
|
||||
protected override void GenerateClassFile(
|
||||
GeneratorExecutionContext context,
|
||||
ClassAttributeReference unit)
|
||||
{
|
||||
// Pull out some fields.
|
||||
ClassDeclarationSyntax cds = unit.ClassDeclaration;
|
||||
|
||||
// Create the partial class.
|
||||
StringBuilder buffer = new();
|
||||
buffer.AppendLine("#nullable enable");
|
||||
|
||||
// Copy the using statements from the file.
|
||||
foreach (UsingDirectiveSyntax? uds in unit.UsingDirectiveList)
|
||||
{
|
||||
buffer.AppendLine(uds.ToString());
|
||||
}
|
||||
|
||||
buffer.AppendLine();
|
||||
|
||||
// Create the namespace.
|
||||
SyntaxToken cls = cds.Identifier;
|
||||
|
||||
buffer.AppendLine(
|
||||
string.Join(
|
||||
"\n",
|
||||
$"using MfGames.Gallium;",
|
||||
$"",
|
||||
$"namespace {unit.Namespace}",
|
||||
$"{{",
|
||||
$" public partial class {cls}",
|
||||
$" {{",
|
||||
$" static {cls}()",
|
||||
$" {{",
|
||||
$" Instance = new {cls}();",
|
||||
$" }}",
|
||||
$"",
|
||||
$" private {cls}()",
|
||||
$" {{",
|
||||
$" }}",
|
||||
$"",
|
||||
$" public static {cls} Instance {{ get; }}",
|
||||
$" }}",
|
||||
$"",
|
||||
$" public static class {cls}Extensions",
|
||||
$" {{",
|
||||
$" public static bool Has{cls}(this Entity entity)",
|
||||
$" {{",
|
||||
$" return entity.Has<{cls}>();",
|
||||
$" }}",
|
||||
$"",
|
||||
$" public static Entity Remove{cls}(this Entity entity)",
|
||||
$" {{",
|
||||
$" return entity.Remove<{cls}>();",
|
||||
$" }}",
|
||||
$"",
|
||||
$" public static Entity Set{cls}(this Entity entity)",
|
||||
$" {{",
|
||||
$" return entity.Set({cls}.Instance);",
|
||||
$" }}",
|
||||
$" }}",
|
||||
$"}}",
|
||||
""));
|
||||
|
||||
// Create the source text and write out the file.
|
||||
var sourceText = SourceText.From(buffer.ToString(), Encoding.UTF8);
|
||||
context.AddSource(cls + ".Generated.cs", sourceText);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace MfGames.Nitride.Generators;
|
||||
|
||||
public class SingletonComponentSyntaxReceiver : ClassAttributeSyntaxReceiverBase
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public SingletonComponentSyntaxReceiver(
|
||||
GeneratorInitializationContext context)
|
||||
: base(context, "SingletonComponent")
|
||||
{
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ using Microsoft.CodeAnalysis.CSharp;
|
|||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
using Microsoft.CodeAnalysis.Text;
|
||||
|
||||
namespace Nitride.Generators;
|
||||
namespace MfGames.Nitride.Generators;
|
||||
|
||||
/// <summary>
|
||||
/// Implements a source generator that creates Set* methods for the various
|
||||
|
@ -15,58 +15,22 @@ namespace Nitride.Generators;
|
|||
/// together calls.
|
||||
/// </summary>
|
||||
[Generator]
|
||||
public class WithPropertySourceGenerator : ISourceGenerator
|
||||
public class WithPropertiesSourceGenerator
|
||||
: ClassAttributeSourceGeneratorBase<WithPropertiesSyntaxReceiver>
|
||||
{
|
||||
public void Execute(GeneratorExecutionContext context)
|
||||
/// <inheritdoc />
|
||||
protected override WithPropertiesSyntaxReceiver CreateSyntaxReceiver(
|
||||
GeneratorInitializationContext context)
|
||||
{
|
||||
// Get the generator infrastructure will create a receiver and
|
||||
// populate it we can retrieve the populated instance via the
|
||||
// context.
|
||||
var syntaxReceiver = (WithPropertySyntaxReceiver?)context.SyntaxReceiver;
|
||||
|
||||
if (syntaxReceiver == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Report any messages.
|
||||
foreach (string? message in syntaxReceiver.Messages)
|
||||
{
|
||||
context.Information(
|
||||
MessageCode.Debug,
|
||||
Location.Create(
|
||||
"Temporary.g.cs",
|
||||
TextSpan.FromBounds(0, 0),
|
||||
new LinePositionSpan(new LinePosition(0, 0), new LinePosition(0, 0))),
|
||||
"Generating additional identifier code: {0}",
|
||||
message);
|
||||
}
|
||||
|
||||
// If we didn't find anything, then there is nothing to do.
|
||||
if (syntaxReceiver.ClassList.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Go through each one.
|
||||
foreach (WithPropertyClass classInfo in syntaxReceiver.ClassList)
|
||||
{
|
||||
this.GenerateClassFile(context, classInfo);
|
||||
}
|
||||
return new WithPropertiesSyntaxReceiver(context);
|
||||
}
|
||||
|
||||
public void Initialize(GeneratorInitializationContext context)
|
||||
{
|
||||
// Register a factory that can create our custom syntax receiver
|
||||
context.RegisterForSyntaxNotifications(() => new WithPropertySyntaxReceiver(context));
|
||||
}
|
||||
|
||||
private void GenerateClassFile(
|
||||
protected override void GenerateClassFile(
|
||||
GeneratorExecutionContext context,
|
||||
WithPropertyClass unit)
|
||||
ClassAttributeReference unit)
|
||||
{
|
||||
// Pull out some fields.
|
||||
ClassDeclarationSyntax? cds = unit.ClassDeclaration;
|
||||
ClassDeclarationSyntax cds = unit.ClassDeclaration;
|
||||
|
||||
// Create the partial class.
|
||||
StringBuilder buffer = new();
|
||||
|
@ -96,7 +60,9 @@ public class WithPropertySourceGenerator : ISourceGenerator
|
|||
foreach (PropertyDeclarationSyntax pds in properties)
|
||||
{
|
||||
// See if we have a setter.
|
||||
bool found = pds.AccessorList?.Accessors.Any(x => x.Keyword.ToString() == "set") ?? false;
|
||||
bool found = pds.AccessorList?.Accessors
|
||||
.Any(x => x.Keyword.ToString() == "set")
|
||||
?? false;
|
||||
|
||||
if (!found)
|
||||
{
|
||||
|
@ -132,7 +98,8 @@ public class WithPropertySourceGenerator : ISourceGenerator
|
|||
pds.Type));
|
||||
|
||||
buffer.AppendLine(" {");
|
||||
buffer.AppendLine(string.Format(" this.{0} = value;", pds.Identifier));
|
||||
buffer.AppendLine(
|
||||
string.Format(" this.{0} = value;", pds.Identifier));
|
||||
buffer.AppendLine(" return this;");
|
||||
buffer.AppendLine(" }");
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using Microsoft.CodeAnalysis;
|
||||
|
||||
namespace MfGames.Nitride.Generators;
|
||||
|
||||
public class WithPropertiesSyntaxReceiver : ClassAttributeSyntaxReceiverBase
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public WithPropertiesSyntaxReceiver(GeneratorInitializationContext context)
|
||||
: base(context, "WithProperties")
|
||||
{
|
||||
}
|
||||
}
|
|
@ -1,15 +1,16 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using Gallium;
|
||||
|
||||
using HandlebarsDotNet;
|
||||
|
||||
using Nitride.Contents;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Contents;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
/// <summary>
|
||||
/// An operation that applies a common or shared template on the content of
|
||||
|
@ -46,7 +47,9 @@ public partial class ApplyStyleTemplate : OperationBase
|
|||
public IHandlebars? Handlebars { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public override IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public override IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Make sure we have sane data.
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
@ -61,7 +64,8 @@ public partial class ApplyStyleTemplate : OperationBase
|
|||
{
|
||||
object model = this.CreateModelCallback!(entity);
|
||||
string name = this.GetTemplateName!(entity);
|
||||
HandlebarsTemplate<object, object> template = this.cache.GetNamedTemplate(name);
|
||||
HandlebarsTemplate<object, object> template =
|
||||
this.cache.GetNamedTemplate(name);
|
||||
string result = template(model!);
|
||||
|
||||
return entity.SetTextContent(result);
|
|
@ -1,6 +1,6 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
public class ApplyStyleTemplateValidator : AbstractValidator<ApplyStyleTemplate>
|
||||
{
|
|
@ -2,7 +2,7 @@ using System.IO;
|
|||
|
||||
using HandlebarsDotNet;
|
||||
|
||||
namespace Nitride.Handlebars.Configuration;
|
||||
namespace MfGames.Nitride.Handlebars.Configuration;
|
||||
|
||||
/// <summary>
|
||||
/// Loads the templates from the given directory.
|
|
@ -3,7 +3,7 @@ using System.Collections.Generic;
|
|||
|
||||
using HandlebarsDotNet;
|
||||
|
||||
namespace Nitride.Handlebars.Configuration;
|
||||
namespace MfGames.Nitride.Handlebars.Configuration;
|
||||
|
||||
/// <summary>
|
||||
/// </summary>
|
||||
|
@ -23,12 +23,18 @@ public class ForEachHandlebarsBlock<TModel> : HandlebarsBlockBase
|
|||
/// <summary>
|
||||
/// Gets or sets the callback that is called when nothing is found.
|
||||
/// </summary>
|
||||
public Action<EncodedTextWriter, BlockHelperOptions, Context, Arguments>? NothingFound { get; set; }
|
||||
public Action<EncodedTextWriter, BlockHelperOptions, Context, Arguments>?
|
||||
NothingFound
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override string HelperName { get; }
|
||||
|
||||
public ForEachHandlebarsBlock<TModel> WithGetList(Func<TModel, IEnumerable<object>>? callback)
|
||||
public ForEachHandlebarsBlock<TModel> WithGetList(
|
||||
Func<TModel, IEnumerable<object>>? callback)
|
||||
{
|
||||
this.GetList = callback;
|
||||
|
||||
|
@ -36,7 +42,8 @@ public class ForEachHandlebarsBlock<TModel> : HandlebarsBlockBase
|
|||
}
|
||||
|
||||
public ForEachHandlebarsBlock<TModel> WithNothingFoundText(
|
||||
Action<EncodedTextWriter, BlockHelperOptions, Context, Arguments>? callback)
|
||||
Action<EncodedTextWriter, BlockHelperOptions, Context, Arguments>?
|
||||
callback)
|
||||
{
|
||||
this.NothingFound = callback;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
using HandlebarsDotNet;
|
||||
|
||||
namespace Nitride.Handlebars.Configuration;
|
||||
namespace MfGames.Nitride.Handlebars.Configuration;
|
||||
|
||||
/// <summary>
|
||||
/// Describes a block helper which can be registered.
|
|
@ -1,6 +1,6 @@
|
|||
using HandlebarsDotNet;
|
||||
|
||||
namespace Nitride.Handlebars.Configuration;
|
||||
namespace MfGames.Nitride.Handlebars.Configuration;
|
||||
|
||||
/// <summary>
|
||||
/// Describes a dependency injected loader of templates or modules.
|
|
@ -4,7 +4,7 @@ using HandlebarsDotNet;
|
|||
|
||||
using Open.Threading;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
/// <summary>
|
||||
/// Implements a cache for templates to prevent compiling the same template
|
||||
|
@ -16,13 +16,15 @@ public class HandlebarsTemplateCache
|
|||
|
||||
private readonly ModificationSynchronizer locker;
|
||||
|
||||
private readonly Dictionary<string, HandlebarsTemplate<object, object>> templates;
|
||||
private readonly Dictionary<string, HandlebarsTemplate<object, object>>
|
||||
templates;
|
||||
|
||||
public HandlebarsTemplateCache(IHandlebars handlebars)
|
||||
{
|
||||
this.handlebars = handlebars;
|
||||
this.locker = new ModificationSynchronizer();
|
||||
this.templates = new Dictionary<string, HandlebarsTemplate<object, object>>();
|
||||
this.templates =
|
||||
new Dictionary<string, HandlebarsTemplate<object, object>>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -39,7 +41,8 @@ public class HandlebarsTemplateCache
|
|||
() => !this.templates.ContainsKey(literal),
|
||||
() =>
|
||||
{
|
||||
HandlebarsTemplate<object, object> template = this.handlebars!.Compile(literal);
|
||||
HandlebarsTemplate<object, object> template =
|
||||
this.handlebars!.Compile(literal);
|
||||
|
||||
this.templates[literal] = template;
|
||||
|
||||
|
@ -56,7 +59,8 @@ public class HandlebarsTemplateCache
|
|||
/// </summary>
|
||||
/// <param name="templateName"></param>
|
||||
/// <returns></returns>
|
||||
public HandlebarsTemplate<object, object> GetNamedTemplate(string templateName)
|
||||
public HandlebarsTemplate<object, object> GetNamedTemplate(
|
||||
string templateName)
|
||||
{
|
||||
string template = $"{{{{> {templateName}}}}}";
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
/// <summary>
|
||||
/// A marker component that indicates that a given file with text component
|
|
@ -1,12 +1,14 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using Gallium;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
/// <summary>
|
||||
/// An operation that discovers which text files have a Handlebars template
|
||||
|
@ -17,7 +19,8 @@ public partial class IdentifyHandlebarsFromComponent : IOperation
|
|||
{
|
||||
private readonly IValidator<IdentifyHandlebarsFromComponent> validator;
|
||||
|
||||
public IdentifyHandlebarsFromComponent(IValidator<IdentifyHandlebarsFromComponent> validator)
|
||||
public IdentifyHandlebarsFromComponent(
|
||||
IValidator<IdentifyHandlebarsFromComponent> validator)
|
||||
{
|
||||
this.validator = validator;
|
||||
}
|
||||
|
@ -25,11 +28,15 @@ public partial class IdentifyHandlebarsFromComponent : IOperation
|
|||
public Func<Entity, bool> HasHandlebarsTest { get; set; } = null!;
|
||||
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
||||
return input.Select(
|
||||
(entity) => this.HasHandlebarsTest.Invoke(entity) ? entity.Set(HasHandlebarsTemplate.Instance) : entity);
|
||||
(entity) => this.HasHandlebarsTest.Invoke(entity)
|
||||
? entity.Set(HasHandlebarsTemplate.Instance)
|
||||
: entity);
|
||||
}
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
public class IdentifyHandlebarsFromComponentValidator : AbstractValidator<IdentifyHandlebarsFromComponent>
|
||||
public class IdentifyHandlebarsFromComponentValidator
|
||||
: AbstractValidator<IdentifyHandlebarsFromComponent>
|
||||
{
|
||||
public IdentifyHandlebarsFromComponentValidator()
|
||||
{
|
|
@ -1,10 +1,10 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
using Gallium;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Contents;
|
||||
|
||||
using Nitride.Contents;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
/// <summary>
|
||||
/// An operation that discovers which text files have a Handlebars template
|
||||
|
@ -13,7 +13,9 @@ namespace Nitride.Handlebars;
|
|||
public class IdentifyHandlebarsFromContent : IOperation
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
return input.SelectEntity<ITextContent>(this.ScanContent);
|
||||
}
|
||||
|
@ -22,7 +24,7 @@ public class IdentifyHandlebarsFromContent : IOperation
|
|||
Entity entity,
|
||||
ITextContent content)
|
||||
{
|
||||
string text = content.GetText();
|
||||
string text = content.GetTextContentString();
|
||||
|
||||
if (text.Contains("{{") && text.Contains("}}"))
|
||||
{
|
|
@ -10,15 +10,15 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Autofac" Version="6.4.0" />
|
||||
<PackageReference Include="Gallium" Version="1.4.0" />
|
||||
<PackageReference Include="Handlebars.Net" Version="2.1.2" />
|
||||
<PackageReference Include="NodaTime.Testing" Version="3.1.0" />
|
||||
<PackageReference Include="Open.Threading" Version="2.2.0" />
|
||||
<PackageReference Include="Autofac" Version="6.4.0"/>
|
||||
<PackageReference Include="MfGames.Gallium" Version="0.4.0"/>
|
||||
<PackageReference Include="Handlebars.Net" Version="2.1.2"/>
|
||||
<PackageReference Include="NodaTime.Testing" Version="3.1.2"/>
|
||||
<PackageReference Include="Open.Threading" Version="2.2.1"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride\Nitride.csproj" />
|
||||
<ProjectReference Include="..\MfGames.Nitride\MfGames.Nitride.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Include the source generator -->
|
||||
|
@ -27,7 +27,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride.Generators\Nitride.Generators.csproj">
|
||||
<ProjectReference Include="..\MfGames.Nitride.Generators\MfGames.Nitride.Generators.csproj">
|
||||
<OutputItemType>Analyzer</OutputItemType>
|
||||
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
|
@ -3,16 +3,17 @@ using System.Collections.Generic;
|
|||
|
||||
using Autofac;
|
||||
|
||||
using Nitride.Handlebars.Configuration;
|
||||
using MfGames.Nitride.Handlebars.Configuration;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
public static class NitrideHandlebarsBuilderExtensions
|
||||
{
|
||||
public static NitrideBuilder UseHandlebars(this NitrideBuilder builder)
|
||||
{
|
||||
return builder
|
||||
.ConfigureContainer(x => x.RegisterModule<NitrideHandlebarsModule>());
|
||||
.ConfigureContainer(
|
||||
x => x.RegisterModule<NitrideHandlebarsModule>());
|
||||
}
|
||||
|
||||
public static NitrideBuilder UseHandlebars(
|
|
@ -4,9 +4,9 @@ using Autofac;
|
|||
|
||||
using HandlebarsDotNet;
|
||||
|
||||
using Nitride.Handlebars.Configuration;
|
||||
using MfGames.Nitride.Handlebars.Configuration;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
public class NitrideHandlebarsModule : Module
|
||||
{
|
||||
|
@ -23,8 +23,10 @@ public class NitrideHandlebarsModule : Module
|
|||
builder.Register(
|
||||
(context) =>
|
||||
{
|
||||
IHandlebars handlebars = HandlebarsDotNet.Handlebars.Create();
|
||||
IEnumerable<IHandlebarsLoader> helpers = context.Resolve<IEnumerable<IHandlebarsLoader>>();
|
||||
IHandlebars handlebars =
|
||||
HandlebarsDotNet.Handlebars.Create();
|
||||
IEnumerable<IHandlebarsLoader> helpers =
|
||||
context.Resolve<IEnumerable<IHandlebarsLoader>>();
|
||||
|
||||
foreach (IHandlebarsLoader helper in helpers)
|
||||
{
|
|
@ -1,15 +1,16 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using Gallium;
|
||||
|
||||
using HandlebarsDotNet;
|
||||
|
||||
using Nitride.Contents;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Contents;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
/// <summary>
|
||||
/// An operation that uses the content to create a template that is then
|
||||
|
@ -39,11 +40,14 @@ public partial class RenderContentTemplate : OperationBase
|
|||
public Func<Entity, object>? CreateModelCallback { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public override IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public override IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
||||
return input.SelectEntity<HasHandlebarsTemplate, ITextContent>(this.Apply);
|
||||
return input.SelectEntity<HasHandlebarsTemplate, ITextContent>(
|
||||
this.Apply);
|
||||
}
|
||||
|
||||
private Entity Apply(
|
||||
|
@ -51,8 +55,9 @@ public partial class RenderContentTemplate : OperationBase
|
|||
HasHandlebarsTemplate _,
|
||||
ITextContent content)
|
||||
{
|
||||
string text = content.GetText();
|
||||
HandlebarsTemplate<object, object> template = this.cache.GetLiteralTemplate(text);
|
||||
string text = content.GetTextContentString();
|
||||
HandlebarsTemplate<object, object> template =
|
||||
this.cache.GetLiteralTemplate(text);
|
||||
object model = this.CreateModelCallback!(entity);
|
||||
string result = template(model!);
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace Nitride.Handlebars;
|
||||
namespace MfGames.Nitride.Handlebars;
|
||||
|
||||
public class RenderContentTemplateValidator : AbstractValidator<RenderContentTemplate>
|
||||
public class RenderContentTemplateValidator
|
||||
: AbstractValidator<RenderContentTemplate>
|
||||
{
|
||||
public RenderContentTemplateValidator()
|
||||
{
|
|
@ -1,11 +1,11 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
|
||||
using Gallium;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Contents;
|
||||
|
||||
using Nitride.Contents;
|
||||
|
||||
namespace Nitride.Html;
|
||||
namespace MfGames.Nitride.Html;
|
||||
|
||||
/// <summary>
|
||||
/// Converts the text input that uses HTML entities and turns them into
|
||||
|
@ -14,7 +14,9 @@ namespace Nitride.Html;
|
|||
public class ConvertHtmlEntitiesToUnicode : OperationBase
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public override IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
return input.SelectEntity<ITextContent>(this.ResolveHtmlEntities);
|
||||
}
|
||||
|
@ -23,7 +25,7 @@ public class ConvertHtmlEntitiesToUnicode : OperationBase
|
|||
Entity entity,
|
||||
ITextContent content)
|
||||
{
|
||||
string text = content.GetText();
|
||||
string text = content.GetTextContentString();
|
||||
string resolved = WebUtility.HtmlDecode(text);
|
||||
|
||||
return entity.SetTextContent(resolved);
|
78
src/MfGames.Nitride.Html/IdentifyHtml.cs
Normal file
78
src/MfGames.Nitride.Html/IdentifyHtml.cs
Normal file
|
@ -0,0 +1,78 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Contents;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace MfGames.Nitride.Html;
|
||||
|
||||
/// <summary>
|
||||
/// An operation that identifies Markdown files by their common extensions
|
||||
/// and converts them to text input while also adding the IsMarkdown
|
||||
/// component to identify them.
|
||||
/// </summary>
|
||||
[WithProperties]
|
||||
public partial class IdentifyHtml : IOperation
|
||||
{
|
||||
private readonly IValidator<IdentifyHtml> validator;
|
||||
|
||||
public IdentifyHtml(IValidator<IdentifyHtml> validator)
|
||||
{
|
||||
this.validator = validator;
|
||||
}
|
||||
|
||||
public Func<Entity, UPath, bool> IsHtmlTest { get; set; } = null!;
|
||||
|
||||
/// <inheritdoc />
|
||||
public IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
||||
return input.SelectEntity<UPath, ITextContent>(this.MarkTextEntities)
|
||||
.SelectEntity<UPath, IBinaryContent>(this.MarkBinaryEntities);
|
||||
}
|
||||
|
||||
private Entity MarkBinaryEntities(
|
||||
Entity entity,
|
||||
UPath path,
|
||||
IBinaryContent binary)
|
||||
{
|
||||
// If we aren't a Markdown file, then there is nothing we can do about that.
|
||||
if (!this.IsHtmlTest(entity, path))
|
||||
{
|
||||
return entity;
|
||||
}
|
||||
|
||||
// Convert the file as a binary.
|
||||
if (binary is ITextContentConvertable textConvertable)
|
||||
{
|
||||
entity = entity.SetTextContent(textConvertable.ToTextContent())
|
||||
.SetIsHtml();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Cannot convert a binary content to a text without ITextContentConvertable.");
|
||||
}
|
||||
|
||||
return entity;
|
||||
}
|
||||
|
||||
private Entity MarkTextEntities(
|
||||
Entity entity,
|
||||
UPath path,
|
||||
ITextContent _)
|
||||
{
|
||||
return this.IsHtmlTest(entity, path)
|
||||
? entity.SetIsHtml()
|
||||
: entity;
|
||||
}
|
||||
}
|
29
src/MfGames.Nitride.Html/IdentifyHtmlFromPath.cs
Normal file
29
src/MfGames.Nitride.Html/IdentifyHtmlFromPath.cs
Normal file
|
@ -0,0 +1,29 @@
|
|||
using FluentValidation;
|
||||
|
||||
using MfGames.Gallium;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace MfGames.Nitride.Html;
|
||||
|
||||
public class IdentifyHtmlFromPath : IdentifyHtml
|
||||
{
|
||||
public IdentifyHtmlFromPath(IValidator<IdentifyHtml> validator)
|
||||
: base(validator)
|
||||
{
|
||||
this.IsHtmlTest = DefaultIsHtml;
|
||||
}
|
||||
|
||||
private static bool DefaultIsHtml(
|
||||
Entity entity,
|
||||
UPath path)
|
||||
{
|
||||
return (path.GetExtensionWithDot() ?? string.Empty).ToLowerInvariant()
|
||||
switch
|
||||
{
|
||||
".htm" => true,
|
||||
".html" => true,
|
||||
_ => false,
|
||||
};
|
||||
}
|
||||
}
|
11
src/MfGames.Nitride.Html/IsHtml.cs
Normal file
11
src/MfGames.Nitride.Html/IsHtml.cs
Normal file
|
@ -0,0 +1,11 @@
|
|||
using MfGames.Nitride.Generators;
|
||||
|
||||
namespace MfGames.Nitride.Html;
|
||||
|
||||
/// <summary>
|
||||
/// A marker component that indicates that the entity is an HTML file.
|
||||
/// </summary>
|
||||
[SingletonComponent]
|
||||
public partial class IsHtml
|
||||
{
|
||||
}
|
|
@ -9,7 +9,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride\Nitride.csproj" />
|
||||
<ProjectReference Include="..\MfGames.Nitride\MfGames.Nitride.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Include the source generator -->
|
||||
|
@ -18,14 +18,14 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride.Generators\Nitride.Generators.csproj">
|
||||
<ProjectReference Include="..\MfGames.Nitride.Generators\MfGames.Nitride.Generators.csproj">
|
||||
<OutputItemType>Analyzer</OutputItemType>
|
||||
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Gallium" Version="1.4.0" />
|
||||
<PackageReference Include="MfGames.Gallium" Version="0.4.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -1,11 +1,12 @@
|
|||
using Autofac;
|
||||
|
||||
namespace Nitride.Html;
|
||||
namespace MfGames.Nitride.Html;
|
||||
|
||||
public static class NitrideHtmlBuilderExtensions
|
||||
{
|
||||
public static NitrideBuilder UseHtml(this NitrideBuilder builder)
|
||||
{
|
||||
return builder.ConfigureContainer(x => x.RegisterModule<NitrideHtmlModule>());
|
||||
return builder.ConfigureContainer(
|
||||
x => x.RegisterModule<NitrideHtmlModule>());
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
using Autofac;
|
||||
|
||||
namespace Nitride.Html;
|
||||
namespace MfGames.Nitride.Html;
|
||||
|
||||
public class NitrideHtmlModule : Module
|
||||
{
|
||||
|
@ -8,5 +8,6 @@ public class NitrideHtmlModule : Module
|
|||
protected override void Load(ContainerBuilder builder)
|
||||
{
|
||||
builder.RegisterOperators(this);
|
||||
builder.RegisterValidators(this);
|
||||
}
|
||||
}
|
12
src/MfGames.Nitride.Html/Validators/IdentifyHtmlValidator.cs
Normal file
12
src/MfGames.Nitride.Html/Validators/IdentifyHtmlValidator.cs
Normal file
|
@ -0,0 +1,12 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace MfGames.Nitride.Html.Validators;
|
||||
|
||||
public class IdentifyHtmlValidator : AbstractValidator<IdentifyHtml>
|
||||
{
|
||||
public IdentifyHtmlValidator()
|
||||
{
|
||||
this.RuleFor(x => x.IsHtmlTest)
|
||||
.NotNull();
|
||||
}
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
using System.IO;
|
||||
|
||||
using Nitride.Contents;
|
||||
using MfGames.Nitride.Contents;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.IO.Contents;
|
||||
namespace MfGames.Nitride.IO.Contents;
|
||||
|
||||
/// <summary>
|
||||
/// Contains a wrapper around a file entry to retrieve the binary data.
|
|
@ -1,11 +1,11 @@
|
|||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
using Nitride.Contents;
|
||||
using MfGames.Nitride.Contents;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.IO.Contents;
|
||||
namespace MfGames.Nitride.IO.Contents;
|
||||
|
||||
/// <summary>
|
||||
/// Contains a wrapper around a file entry to retrieve text data.
|
||||
|
@ -22,7 +22,9 @@ public class FileEntryTextContent : ITextContent, IBinaryContentConvertable
|
|||
/// <inheritdoc />
|
||||
public TextReader GetReader()
|
||||
{
|
||||
return new StreamReader(this.entry.Open(FileMode.Open, FileAccess.Read, FileShare.Read), Encoding.UTF8);
|
||||
return new StreamReader(
|
||||
this.entry.Open(FileMode.Open, FileAccess.Read, FileShare.Read),
|
||||
Encoding.UTF8);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
|
@ -2,18 +2,19 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
|
||||
using DotNet.Globbing;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using Gallium;
|
||||
|
||||
using Nitride.Contents;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Contents;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.IO.Contents;
|
||||
namespace MfGames.Nitride.IO.Contents;
|
||||
|
||||
/// <summary>
|
||||
/// A module that reads files from the file system and wraps them in an
|
||||
|
@ -43,9 +44,10 @@ public partial class ReadFiles : FileSystemOperationBase
|
|||
/// minimatch pattern (as defined by DotNet.Blob).
|
||||
/// </summary>
|
||||
/// <returns>A populated collection of entities.</returns>
|
||||
public IEnumerable<Entity> Run()
|
||||
public IEnumerable<Entity> Run(
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
return this.Run(Array.Empty<Entity>());
|
||||
return this.Run(Array.Empty<Entity>(), cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -53,13 +55,16 @@ public partial class ReadFiles : FileSystemOperationBase
|
|||
/// minimatch pattern (as defined by DotNet.Blob).
|
||||
/// </summary>
|
||||
/// <returns>A populated collection of entities.</returns>
|
||||
public override IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public override IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
||||
var glob = Glob.Parse(this.Pattern);
|
||||
|
||||
IEnumerable<FileEntry> files = this.FileSystem.EnumerateFileEntries("/", "*", SearchOption.AllDirectories)
|
||||
IEnumerable<FileEntry> files = this.FileSystem
|
||||
.EnumerateFileEntries("/", "*", SearchOption.AllDirectories)
|
||||
.Where(x => glob.IsMatch(x.Path.ToString()));
|
||||
|
||||
IEnumerable<Entity> entities = files.Select(this.ToEntity);
|
|
@ -1,6 +1,6 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace Nitride.IO.Contents;
|
||||
namespace MfGames.Nitride.IO.Contents;
|
||||
|
||||
public class ReadFilesValidator : AbstractValidator<ReadFiles>
|
||||
{
|
|
@ -3,18 +3,19 @@ using System.Collections.Generic;
|
|||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using Gallium;
|
||||
|
||||
using Nitride.Contents;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Contents;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
using Serilog;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.IO.Contents;
|
||||
namespace MfGames.Nitride.IO.Contents;
|
||||
|
||||
/// <summary>
|
||||
/// An operation that writes out entities to a file system.
|
||||
|
@ -48,7 +49,8 @@ public partial class WriteFiles : FileSystemOperationBase, IOperation
|
|||
public Dictionary<Type, Func<IContent, Stream>> StreamFactories
|
||||
{
|
||||
get => this.factories;
|
||||
set => this.factories = value ?? throw new ArgumentNullException(nameof(value));
|
||||
set => this.factories =
|
||||
value ?? throw new ArgumentNullException(nameof(value));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -62,8 +64,11 @@ public partial class WriteFiles : FileSystemOperationBase, IOperation
|
|||
/// a path and a registered writer will be written.
|
||||
/// </summary>
|
||||
/// <param name="entities">The entities to parse.</param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns>The same list of entities without changes.</returns>
|
||||
public override IEnumerable<Entity> Run(IEnumerable<Entity> entities)
|
||||
public override IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> entities,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
||||
|
@ -102,7 +107,9 @@ public partial class WriteFiles : FileSystemOperationBase, IOperation
|
|||
.ReadToEnd();
|
||||
|
||||
var stream = new MemoryStream();
|
||||
var writer = new StreamWriter(stream, this.TextEncoding ?? Encoding.UTF8);
|
||||
var writer = new StreamWriter(
|
||||
stream,
|
||||
this.TextEncoding ?? Encoding.UTF8);
|
||||
|
||||
writer.Write(text);
|
||||
writer.Flush();
|
||||
|
@ -133,7 +140,9 @@ public partial class WriteFiles : FileSystemOperationBase, IOperation
|
|||
// First see if we have a factory for the exact type of content.
|
||||
IContent content = entity.GetContent();
|
||||
|
||||
if (this.factories.TryGetValue(content.GetType(), out Func<IContent, Stream>? getStream))
|
||||
if (this.factories.TryGetValue(
|
||||
content.GetType(),
|
||||
out Func<IContent, Stream>? getStream))
|
||||
{
|
||||
Stream stream = getStream(content);
|
||||
|
||||
|
@ -143,7 +152,9 @@ public partial class WriteFiles : FileSystemOperationBase, IOperation
|
|||
// If we have an easy conversion, then use that so we don't have to
|
||||
// walk up the tree looking for one we do have.
|
||||
if (content is IBinaryContentConvertable binaryConvertable
|
||||
&& this.factories.TryGetValue(typeof(IBinaryContent), out Func<IContent, Stream>? binaryContent))
|
||||
&& this.factories.TryGetValue(
|
||||
typeof(IBinaryContent),
|
||||
out Func<IContent, Stream>? binaryContent))
|
||||
{
|
||||
Stream stream = binaryContent(binaryConvertable.ToBinaryContent());
|
||||
|
||||
|
@ -151,7 +162,9 @@ public partial class WriteFiles : FileSystemOperationBase, IOperation
|
|||
}
|
||||
|
||||
if (content is ITextContentConvertable textConvertable
|
||||
&& this.factories.TryGetValue(typeof(ITextContent), out Func<IContent, Stream>? textContent))
|
||||
&& this.factories.TryGetValue(
|
||||
typeof(ITextContent),
|
||||
out Func<IContent, Stream>? textContent))
|
||||
{
|
||||
Stream stream = textContent(textConvertable.ToTextContent());
|
||||
|
||||
|
@ -167,7 +180,12 @@ public partial class WriteFiles : FileSystemOperationBase, IOperation
|
|||
{
|
||||
// Check to see if we have any of these types.
|
||||
Func<IContent, Stream>? found = types
|
||||
.Select(x => this.factories.TryGetValue(x, out Func<IContent, Stream>? factory) ? factory : null)
|
||||
.Select(
|
||||
x => this.factories.TryGetValue(
|
||||
x,
|
||||
out Func<IContent, Stream>? factory)
|
||||
? factory
|
||||
: null)
|
||||
.FirstOrDefault(x => x != null);
|
||||
|
||||
if (found != null)
|
||||
|
@ -179,7 +197,8 @@ public partial class WriteFiles : FileSystemOperationBase, IOperation
|
|||
|
||||
// We didn't find one, so add all the parent types and try
|
||||
// again with the new list.
|
||||
types = types.SelectMany(x => new[] { x.BaseType }.Union(x.GetInterfaces()))
|
||||
types = types
|
||||
.SelectMany(x => new[] { x.BaseType }.Union(x.GetInterfaces()))
|
||||
.Where(x => x != null)
|
||||
.Select(x => x!)
|
||||
.ToList();
|
|
@ -1,6 +1,6 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace Nitride.IO.Contents;
|
||||
namespace MfGames.Nitride.IO.Contents;
|
||||
|
||||
public class WriteFilesValidator : AbstractValidator<WriteFiles>
|
||||
{
|
|
@ -1,15 +1,17 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using Gallium;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
using Serilog;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.IO.Directories;
|
||||
namespace MfGames.Nitride.IO.Directories;
|
||||
|
||||
/// <summary>
|
||||
/// A Nitride operation that removes the contents of a directory but not
|
||||
|
@ -39,13 +41,16 @@ public partial class ClearDirectory : FileSystemOperationBase, IOperation
|
|||
/// </summary>
|
||||
public UPath? Path { get; set; }
|
||||
|
||||
public IEnumerable<Entity> Run()
|
||||
public IEnumerable<Entity> Run(
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
return this.Run(new List<Entity>());
|
||||
return this.Run(new List<Entity>(), cancellationToken);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public override IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
||||
|
@ -71,7 +76,8 @@ public partial class ClearDirectory : FileSystemOperationBase, IOperation
|
|||
|
||||
// Clear out the contents.
|
||||
IEnumerable<UPath> files = this.FileSystem.EnumerateFiles(path);
|
||||
IEnumerable<UPath> directories = this.FileSystem.EnumerateDirectories(path);
|
||||
IEnumerable<UPath> directories =
|
||||
this.FileSystem.EnumerateDirectories(path);
|
||||
|
||||
foreach (UPath file in files)
|
||||
{
|
|
@ -1,6 +1,6 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace Nitride.IO.Directories;
|
||||
namespace MfGames.Nitride.IO.Directories;
|
||||
|
||||
public class ClearDirectoryValidator : AbstractValidator<ClearDirectory>
|
||||
{
|
|
@ -1,10 +1,11 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
using Gallium;
|
||||
using MfGames.Gallium;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.IO;
|
||||
namespace MfGames.Nitride.IO;
|
||||
|
||||
public abstract class FileSystemOperationBase : IOperation
|
||||
{
|
||||
|
@ -16,5 +17,7 @@ public abstract class FileSystemOperationBase : IOperation
|
|||
public IFileSystem FileSystem { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public abstract IEnumerable<Entity> Run(IEnumerable<Entity> input);
|
||||
public abstract IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default);
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
namespace Nitride.IO;
|
||||
namespace MfGames.Nitride.IO;
|
||||
|
||||
public enum IfFoundOutput
|
||||
{
|
|
@ -8,17 +8,17 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Autofac" Version="6.4.0" />
|
||||
<PackageReference Include="DotNet.Glob" Version="3.1.3" />
|
||||
<PackageReference Include="FluentValidation" Version="11.1.0" />
|
||||
<PackageReference Include="Gallium" Version="1.4.0" />
|
||||
<PackageReference Include="MAB.DotIgnore" Version="3.0.2" />
|
||||
<PackageReference Include="Serilog" Version="2.11.0" />
|
||||
<PackageReference Include="Zio" Version="0.15.0" />
|
||||
<PackageReference Include="Autofac" Version="6.4.0"/>
|
||||
<PackageReference Include="DotNet.Glob" Version="3.1.3"/>
|
||||
<PackageReference Include="FluentValidation" Version="11.2.1"/>
|
||||
<PackageReference Include="MfGames.Gallium" Version="0.4.0"/>
|
||||
<PackageReference Include="MAB.DotIgnore" Version="3.0.2"/>
|
||||
<PackageReference Include="Serilog" Version="2.11.0"/>
|
||||
<PackageReference Include="Zio" Version="0.15.0"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride\Nitride.csproj" />
|
||||
<ProjectReference Include="..\MfGames.Nitride\MfGames.Nitride.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Include the source generator -->
|
||||
|
@ -27,7 +27,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Nitride.Generators\Nitride.Generators.csproj">
|
||||
<ProjectReference Include="..\MfGames.Nitride.Generators\MfGames.Nitride.Generators.csproj">
|
||||
<OutputItemType>Analyzer</OutputItemType>
|
||||
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
|
@ -1,11 +1,12 @@
|
|||
using Autofac;
|
||||
|
||||
namespace Nitride.IO;
|
||||
namespace MfGames.Nitride.IO;
|
||||
|
||||
public static class NitrideIOBuilderExtensions
|
||||
{
|
||||
public static NitrideBuilder UseIO(this NitrideBuilder builder)
|
||||
{
|
||||
return builder.ConfigureContainer(x => x.RegisterModule<NitrideIOModule>());
|
||||
return builder.ConfigureContainer(
|
||||
x => x.RegisterModule<NitrideIOModule>());
|
||||
}
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
using Gallium;
|
||||
|
||||
using MAB.DotIgnore;
|
||||
|
||||
using MfGames.Gallium;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.IO;
|
||||
namespace MfGames.Nitride.IO;
|
||||
|
||||
/// <summary>
|
||||
/// Extension methods for working with paths.
|
|
@ -1,6 +1,6 @@
|
|||
using Autofac;
|
||||
|
||||
namespace Nitride.IO;
|
||||
namespace MfGames.Nitride.IO;
|
||||
|
||||
public class NitrideIOModule : Module
|
||||
{
|
|
@ -1,12 +1,14 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
using FluentValidation;
|
||||
|
||||
using Gallium;
|
||||
using MfGames.Gallium;
|
||||
using MfGames.Nitride.Generators;
|
||||
|
||||
using Zio;
|
||||
|
||||
namespace Nitride.IO.Paths;
|
||||
namespace MfGames.Nitride.IO.Paths;
|
||||
|
||||
[WithProperties]
|
||||
public partial class AddPathPrefix : OperationBase
|
||||
|
@ -28,11 +30,14 @@ public partial class AddPathPrefix : OperationBase
|
|||
/// </summary>
|
||||
public UPath? PathPrefix { get; set; }
|
||||
|
||||
public override IEnumerable<Entity> Run(IEnumerable<Entity> input)
|
||||
public override IEnumerable<Entity> Run(
|
||||
IEnumerable<Entity> input,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
this.validator.ValidateAndThrow(this);
|
||||
|
||||
return this.replacePath.WithReplacement(this.RunReplacement)
|
||||
return this.replacePath
|
||||
.WithReplacement(this.RunReplacement)
|
||||
.Run(input);
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace Nitride.IO.Paths;
|
||||
namespace MfGames.Nitride.IO.Paths;
|
||||
|
||||
public class AddPathPrefixValidator : AbstractValidator<AddPathPrefix>
|
||||
{
|
Some files were not shown because too many files have changed in this diff Show more
Reference in a new issue