From f3664ee8ceeeb039f71a195adc7607861e926ac9 Mon Sep 17 00:00:00 2001 From: Stuart Turner Date: Thu, 4 Jan 2024 18:21:18 -0600 Subject: [PATCH] Initial Commit --- .editorconfig | 220 ++++++++++++++++++ .gitattributes | 1 + .github/dependabot.yml | 12 + .github/workflows/build.yml | 36 +++ .github/workflows/release.yml | 41 ++++ .gitignore | 17 ++ Directory.Build.props | 29 +++ Directory.Packages.props | 20 ++ Immediate.Handlers.sln | 72 ++++++ license.txt | 21 ++ readme.md | 12 + samples/Normal/Normal.csproj | 12 + .../Immediate.Handlers.Utility.csproj | 8 + .../Immediate.Handlers.csproj | 51 ++++ .../Properties/launchSettings.json | 8 + .../Immediate.Handlers.Tests.csproj | 20 ++ 16 files changed, 580 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 Directory.Build.props create mode 100644 Directory.Packages.props create mode 100644 Immediate.Handlers.sln create mode 100644 license.txt create mode 100644 readme.md create mode 100644 samples/Normal/Normal.csproj create mode 100644 src/Immediate.Handlers.Utility/Immediate.Handlers.Utility.csproj create mode 100644 src/Immediate.Handlers/Immediate.Handlers.csproj create mode 100644 src/Immediate.Handlers/Properties/launchSettings.json create mode 100644 tests/Immediate.Handlers.Tests/Immediate.Handlers.Tests.csproj diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..013544f4 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,220 @@ +# http://editorconfig.org/ + +root = true + +[*] +indent_style = tab +insert_final_newline = true + +# Build scripts +[*.{yml,yaml}] +indent_style = spaces +indent_size = 2 + +# XML project files +[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj,props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] +indent_size = 2 + +# Code files +[*.cs] +indent_size = 4 +tab_width = 4 +charset = utf-8-bom + +## Dotnet code style settings: + +# Sort using and Import directives with System.* appearing first +dotnet_sort_system_directives_first = true +dotnet_separate_import_directive_groups = false + +# require accessibility modifiers +dotnet_style_require_accessibility_modifiers = for_non_interface_members:error + +# Avoid "this." and "Me." if not necessary +dotnet_style_qualification_for_field = false:refactoring +dotnet_style_qualification_for_property = false:refactoring +dotnet_style_qualification_for_method = false:refactoring +dotnet_style_qualification_for_event = false:refactoring + +# Use language keywords instead of framework type names for type references +dotnet_style_predefined_type_for_locals_parameters_members = true:error +dotnet_style_predefined_type_for_member_access = true:suggestion + +# Suggest more modern language features when available +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_prefer_compound_assignment = true:warning + +# Constants are PascalCase +dotnet_naming_rule.constants_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.constants_should_be_pascal_case.symbols = constants +dotnet_naming_rule.constants_should_be_pascal_case.style = constant_style + +dotnet_naming_symbols.constants.applicable_kinds = field, local +dotnet_naming_symbols.constants.required_modifiers = const + +dotnet_naming_style.constant_style.capitalization = pascal_case + +# Non-private readonly fields are PascalCase +dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.symbols = non_private_readonly_fields +dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.style = non_private_readonly_field_style + +dotnet_naming_symbols.non_private_readonly_fields.applicable_kinds = field +dotnet_naming_symbols.non_private_readonly_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected +dotnet_naming_symbols.non_private_readonly_fields.required_modifiers = readonly + +dotnet_naming_style.non_private_readonly_field_style.capitalization = pascal_case + +# Non-private static fields are PascalCase +dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.symbols = non_private_static_fields +dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.style = non_private_static_field_style + +dotnet_naming_symbols.non_private_static_fields.applicable_kinds = field +dotnet_naming_symbols.non_private_static_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected +dotnet_naming_symbols.non_private_static_fields.required_modifiers = static + +dotnet_naming_style.non_private_static_field_style.capitalization = pascal_case + +# Static fields are PascalCase +dotnet_naming_rule.static_fields_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.static_fields_should_be_pascal_case.symbols = static_fields +dotnet_naming_rule.static_fields_should_be_pascal_case.style = static_field_style + +dotnet_naming_symbols.static_fields.applicable_kinds = field +dotnet_naming_symbols.static_fields.required_modifiers = static + +dotnet_naming_style.static_field_style.capitalization = pascal_case + +# Instance fields are camelCase and start with _ +dotnet_naming_rule.instance_fields_should_be_camel_case.severity = suggestion +dotnet_naming_rule.instance_fields_should_be_camel_case.symbols = instance_fields +dotnet_naming_rule.instance_fields_should_be_camel_case.style = instance_field_style + +dotnet_naming_symbols.instance_fields.applicable_kinds = field + +dotnet_naming_style.instance_field_style.capitalization = camel_case +dotnet_naming_style.instance_field_style.required_prefix = _ + +# Locals and parameters are camelCase +dotnet_naming_rule.locals_should_be_camel_case.severity = suggestion +dotnet_naming_rule.locals_should_be_camel_case.symbols = locals_and_parameters +dotnet_naming_rule.locals_should_be_camel_case.style = camel_case_style + +dotnet_naming_symbols.locals_and_parameters.applicable_kinds = parameter, local + +dotnet_naming_style.camel_case_style.capitalization = camel_case + +# Local functions are PascalCase +dotnet_naming_rule.local_functions_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.local_functions_should_be_pascal_case.symbols = local_functions +dotnet_naming_rule.local_functions_should_be_pascal_case.style = local_function_style + +dotnet_naming_symbols.local_functions.applicable_kinds = local_function + +dotnet_naming_style.local_function_style.capitalization = pascal_case + +# By default, name items with PascalCase +dotnet_naming_rule.members_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.members_should_be_pascal_case.symbols = all_members +dotnet_naming_rule.members_should_be_pascal_case.style = pascal_case_style + +dotnet_naming_symbols.all_members.applicable_kinds = * + +dotnet_naming_style.pascal_case_style.capitalization = pascal_case + +## C# style settings: + +# Newline settings +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_between_query_expression_clauses = true + +# Indentation preferences +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents = true +csharp_indent_case_contents_when_block = false +csharp_indent_switch_labels = true +csharp_indent_labels = flush_left + +# Prefer "var" everywhere +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:suggestion +csharp_style_var_elsewhere = true:suggestion + +# Prefer method-like constructs to have a block body +csharp_style_expression_bodied_methods = false:none +csharp_style_expression_bodied_constructors = false:none +csharp_style_expression_bodied_operators = false:none + +# Prefer local method constructs to have a block body +csharp_style_expression_bodied_local_functions = true:suggestion + +# Prefer property-like constructs to have an expression-body +csharp_style_expression_bodied_properties = true:suggestion +csharp_style_expression_bodied_indexers = true:suggestion +csharp_style_expression_bodied_accessors = true:suggestion + +# Suggest more modern language features when available +csharp_style_pattern_matching_over_is_with_cast_check = true:warning +csharp_style_pattern_matching_over_as_with_null_check = true:warning +csharp_style_inlined_variable_declaration = true:warning +csharp_style_throw_expression = true:warning +csharp_style_conditional_delegate_call = true:warning +csharp_style_prefer_switch_expression = true:warning +csharp_prefer_simple_using_statement = true:suggestion +csharp_style_namespace_declarations = file_scoped:error + +# Space preferences +csharp_space_after_cast = false +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_after_semicolon_in_for_statement = true +csharp_space_around_binary_operators = before_and_after +csharp_space_around_declaration_statements = do_not_ignore +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_before_comma = false +csharp_space_before_dot = false +csharp_space_before_open_square_brackets = false +csharp_space_before_semicolon_in_for_statement = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_between_square_brackets = false + +# Blocks are allowed +csharp_prefer_braces = when_multiline:silent +csharp_preserve_single_line_blocks = true:silent +csharp_preserve_single_line_statements = true:silent + +# Style Analytics +dotnet_analyzer_diagnostic.category-Style.severity = warning + +# XML Documentation +dotnet_diagnostic.CS0105.severity = none # CS0105: Using directive is unnecessary. +dotnet_diagnostic.CS1573.severity = none # CS1573: Missing XML comment for parameter +dotnet_diagnostic.CS1591.severity = none # CS1591: Missing XML comment for publicly visible type or member +dotnet_diagnostic.CS1712.severity = none # CS1712: Type parameter has no matching typeparam tag in the XML comment (but other type parameters do) + +# Async +dotnet_diagnostic.CS1998.severity = error # CS1998: Async method lacks 'await' operators and will run synchronously +dotnet_diagnostic.CS4014.severity = error # CS4014: Because this call is not awaited, execution of the current method continues before the call is completed + +# Dispose things need disposing +dotnet_diagnostic.CA2000.severity = error # CA2000: Dispose objects before losing scope diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..6313b56c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..a948102e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "nuget" + directory: "/" + schedule: + interval: weekly + rebase-strategy: auto diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..71356f93 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,36 @@ +name: Build + +on: + workflow_dispatch: + push: + branches: + - 'master' + paths-ignore: + - '**/readme.md' + pull_request: + types: [opened, synchronize, reopened] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 6.0.x + 8.0.x + + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build -c Release --no-restore + - name: Test + run: dotnet test -c Release --no-build --logger GitHubActions + + - name: Upload coverage reports to Codecov with GitHub Action + uses: codecov/codecov-action@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..0b3fe8c7 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,41 @@ +name: Release + +on: + workflow_dispatch: + push: + tags: + - '**' + +permissions: + contents: write + +jobs: + release: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 6.0.x + 8.0.x + + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build -c Release --no-restore + + - name: Package + run: dotnet pack -c Release --no-build --property:PackageOutputPath=../../nupkgs + - name: Push to Nuget + run: dotnet nuget push "./nupkgs/*.nupkg" --source "https://api.nuget.org/v3/index.json" --api-key ${{ secrets.NUGETPUBLISHKEY }} + + - name: Create Release + uses: ncipollo/release-action@v1 + with: + generateReleaseNotes: 'true' + makeLatest: 'true' diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..482bf54b --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# Build results +[Bb]in/ +[Oo]bj/ + +# Visual Studio cache/options directory +.vs/ +*.user + +# VS Code cache/options directory +.vscode/ + +# TestResults +[Tt]est[Rr]esults/ diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 00000000..62c6f907 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,29 @@ + + + latest + + enable + $(WarningsAsErrors);nullable; + + enable + + latest-all + true + + true + + + + + + + + + true + + true + true + true + opencover + + diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000..74b6482e --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,20 @@ + + + true + + + + + + + + + + + + + + + + + diff --git a/Immediate.Handlers.sln b/Immediate.Handlers.sln new file mode 100644 index 00000000..7d815764 --- /dev/null +++ b/Immediate.Handlers.sln @@ -0,0 +1,72 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".root", ".root", "{E83E02F9-5BD8-426B-ABE0-111129CDE5C2}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + .gitignore = .gitignore + .github\dependabot.yml = .github\dependabot.yml + Directory.Build.props = Directory.Build.props + Directory.Packages.props = Directory.Packages.props + readme.md = readme.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{48400D35-471A-4EF4-93E4-2394D87E0012}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{517768B6-A2B3-4ED2-8F70-E53C85A493FF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{E0B0FA04-0B70-40E7-B982-8702A7829DC7}" + ProjectSection(SolutionItems) = preProject + .github\workflows\build.yml = .github\workflows\build.yml + .github\workflows\release.yml = .github\workflows\release.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{C484CFC6-6DB0-48CB-A769-1A06FF40787E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Immediate.Handlers", "src\Immediate.Handlers\Immediate.Handlers.csproj", "{4E9DC4CB-4833-4471-AF34-699565BCFDBE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Immediate.Handlers.Utility", "src\Immediate.Handlers.Utility\Immediate.Handlers.Utility.csproj", "{789B0C8D-98ED-4712-8AB1-E4B10AD4D669}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Immediate.Handlers.Samples", "samples\Immediate.Handlers.Samples\Immediate.Handlers.Samples.csproj", "{47F6A643-1381-4B43-9F7B-689DFB037637}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Immediate.Handlers.Tests", "tests\Immediate.Handlers.Tests\Immediate.Handlers.Tests.csproj", "{7E5E76EB-8087-48F6-8A87-CFABFC5CB409}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4E9DC4CB-4833-4471-AF34-699565BCFDBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E9DC4CB-4833-4471-AF34-699565BCFDBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E9DC4CB-4833-4471-AF34-699565BCFDBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E9DC4CB-4833-4471-AF34-699565BCFDBE}.Release|Any CPU.Build.0 = Release|Any CPU + {789B0C8D-98ED-4712-8AB1-E4B10AD4D669}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {789B0C8D-98ED-4712-8AB1-E4B10AD4D669}.Debug|Any CPU.Build.0 = Debug|Any CPU + {789B0C8D-98ED-4712-8AB1-E4B10AD4D669}.Release|Any CPU.ActiveCfg = Release|Any CPU + {789B0C8D-98ED-4712-8AB1-E4B10AD4D669}.Release|Any CPU.Build.0 = Release|Any CPU + {47F6A643-1381-4B43-9F7B-689DFB037637}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47F6A643-1381-4B43-9F7B-689DFB037637}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47F6A643-1381-4B43-9F7B-689DFB037637}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47F6A643-1381-4B43-9F7B-689DFB037637}.Release|Any CPU.Build.0 = Release|Any CPU + {7E5E76EB-8087-48F6-8A87-CFABFC5CB409}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E5E76EB-8087-48F6-8A87-CFABFC5CB409}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E5E76EB-8087-48F6-8A87-CFABFC5CB409}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E5E76EB-8087-48F6-8A87-CFABFC5CB409}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {4E9DC4CB-4833-4471-AF34-699565BCFDBE} = {48400D35-471A-4EF4-93E4-2394D87E0012} + {789B0C8D-98ED-4712-8AB1-E4B10AD4D669} = {48400D35-471A-4EF4-93E4-2394D87E0012} + {E0B0FA04-0B70-40E7-B982-8702A7829DC7} = {E83E02F9-5BD8-426B-ABE0-111129CDE5C2} + {47F6A643-1381-4B43-9F7B-689DFB037637} = {C484CFC6-6DB0-48CB-A769-1A06FF40787E} + {7E5E76EB-8087-48F6-8A87-CFABFC5CB409} = {517768B6-A2B3-4ED2-8F70-E53C85A493FF} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {184E3CAB-91E8-4F1A-A16B-C062F25BECC4} + EndGlobalSection +EndGlobal diff --git a/license.txt b/license.txt new file mode 100644 index 00000000..1d8db7a3 --- /dev/null +++ b/license.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2024 Immediate.Handlers developers + +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. diff --git a/readme.md b/readme.md new file mode 100644 index 00000000..eef4400b --- /dev/null +++ b/readme.md @@ -0,0 +1,12 @@ +# Immediate.Handlers +| Name | Status | History | +| :--- | :--- | :--- | +| GitHub Actions | ![Build](https://github.com/viceroypenguin/Immediate.Handlers/actions/workflows/build.yml/badge.svg) | [![GitHub Actions Build History](https://buildstats.info/github/chart/viceroypenguin/Immediate.Handlers?branch=master&includeBuildsFromPullRequest=false)](https://github.com/viceroypenguin/Immediate.Handlers/actions) | + +[![NuGet](https://img.shields.io/nuget/v/Immediate.Handlers.svg?style=plastic)](https://www.nuget.org/packages/Immediate.Handlers/) +[![GitHub release](https://img.shields.io/github/release/viceroypenguin/Immediate.Handlers.svg)](https://GitHub.com/viceroypenguin/Immediate.Handlers/releases/) +[![GitHub license](https://img.shields.io/github/license/viceroypenguin/Immediate.Handlers.svg)](https://github.com/viceroypenguin/Immediate.Handlers/blob/master/license.txt) +[![GitHub issues](https://img.shields.io/github/issues/viceroypenguin/Immediate.Handlers.svg)](https://GitHub.com/viceroypenguin/Immediate.Handlers/issues/) +[![GitHub issues-closed](https://img.shields.io/github/issues-closed/viceroypenguin/Immediate.Handlers.svg)](https://GitHub.com/viceroypenguin/Immediate.Handlers/issues?q=is%3Aissue+is%3Aclosed) +--- + diff --git a/samples/Normal/Normal.csproj b/samples/Normal/Normal.csproj new file mode 100644 index 00000000..397d8c21 --- /dev/null +++ b/samples/Normal/Normal.csproj @@ -0,0 +1,12 @@ + + + + net6.0;net8.0 + false + + + + + + + diff --git a/src/Immediate.Handlers.Utility/Immediate.Handlers.Utility.csproj b/src/Immediate.Handlers.Utility/Immediate.Handlers.Utility.csproj new file mode 100644 index 00000000..8a960fe0 --- /dev/null +++ b/src/Immediate.Handlers.Utility/Immediate.Handlers.Utility.csproj @@ -0,0 +1,8 @@ + + + + netstandard2.0 + false + + + diff --git a/src/Immediate.Handlers/Immediate.Handlers.csproj b/src/Immediate.Handlers/Immediate.Handlers.csproj new file mode 100644 index 00000000..c6c6610d --- /dev/null +++ b/src/Immediate.Handlers/Immediate.Handlers.csproj @@ -0,0 +1,51 @@ + + + + netstandard2.0 + false + true + true + + + + Immediate.Handlers + TBD + + Immediate.Handlers Developers + + MIT + readme.md + + true + https://github.com/viceroypenguin/Immediate.Handlers + + + + + + + + + + + + + + + + + + + + + + + + minor + preview.0 + v + + + diff --git a/src/Immediate.Handlers/Properties/launchSettings.json b/src/Immediate.Handlers/Properties/launchSettings.json new file mode 100644 index 00000000..f3158850 --- /dev/null +++ b/src/Immediate.Handlers/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "Immediate.Handlers.Samples": { + "commandName": "DebugRoslynComponent", + "targetProject": "..//..//Samples//Immediate.Handlers.Samples//Immediate.Handlers.Samples.csproj" + } + } +} diff --git a/tests/Immediate.Handlers.Tests/Immediate.Handlers.Tests.csproj b/tests/Immediate.Handlers.Tests/Immediate.Handlers.Tests.csproj new file mode 100644 index 00000000..338075ec --- /dev/null +++ b/tests/Immediate.Handlers.Tests/Immediate.Handlers.Tests.csproj @@ -0,0 +1,20 @@ + + + + net6.0;net8.0 + false + + + + + + + + + + + + + + +