diff --git a/.editorconfig b/.editorconfig
index 69c17b8f..9df0c0d5 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -8,9 +8,12 @@ indent_style = space
indent_size = 4
trim_trailing_whitespace = true
-[*.{props,sln,targets}]
+[*.{props,slnx,targets}]
indent_style = tab
+[*.{slnx}]
+end_of_line = crlf
+
[*.{yml,yaml}]
indent_size = 2
diff --git a/.gitattributes b/.gitattributes
index ffba596e..eb91e531 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,6 @@
* text=auto eol=lf
-*.sln text eol=crlf
+# Visual Studio always saves the solution
+# file with CRLF even if we manually convert it to
+# LF beforehand.
+*.slnx text eol=crlf
*.cs diff=csharp
diff --git a/Funcky.sln b/Funcky.sln
deleted file mode 100644
index bf42af62..00000000
--- a/Funcky.sln
+++ /dev/null
@@ -1,180 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky", "Funcky\Funcky.csproj", "{A51E4B16-901A-4D9B-A0E1-E263FD93F2ED}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Test", "Funcky.Test\Funcky.Test.csproj", "{EA10A7A1-6393-4B5F-BFF6-5937DA395141}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2C37116A-BC6E-451C-B5E3-76A70F1BE590}"
- ProjectSection(SolutionItems) = preProject
- .editorconfig = .editorconfig
- .gitignore = .gitignore
- changelog.md = changelog.md
- README.md = README.md
- SupportPolicy.md = SupportPolicy.md
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Config", "Build Config", "{DD8F8450-BE23-4D6B-9C5C-7AED0ABB7531}"
- ProjectSection(SolutionItems) = preProject
- Analyzers.props = Analyzers.props
- Funcky\CompatibilitySuppressions.xml = Funcky\CompatibilitySuppressions.xml
- Directory.Build.props = Directory.Build.props
- Directory.Packages.props = Directory.Packages.props
- FrameworkFeatureConstants.props = FrameworkFeatureConstants.props
- global.json = global.json
- GlobalUsings.props = GlobalUsings.props
- GlobalUsings.Test.props = GlobalUsings.Test.props
- NuGet.config = NuGet.config
- typos.toml = typos.toml
- PublicApiAnalyzers.targets = PublicApiAnalyzers.targets
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Xunit", "Funcky.Xunit\Funcky.Xunit.csproj", "{F2E98B0D-CC17-4576-89DE-065FF475BE6E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Xunit.Test", "Funcky.Xunit.Test\Funcky.Xunit.Test.csproj", "{C2400B4E-63DD-475E-BF7B-5D5079601F51}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analyzers", "Analyzers", "{BBE35279-7416-4B9D-B89D-B6D1FF369681}"
- ProjectSection(SolutionItems) = preProject
- Funcky.Analyzers\readme.md = Funcky.Analyzers\readme.md
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Analyzers", "Funcky.Analyzers\Funcky.Analyzers\Funcky.Analyzers.csproj", "{38795B14-3E1A-4491-AEA0-173A73CE9E3A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Analyzers.CodeFixes", "Funcky.Analyzers\Funcky.Analyzers.CodeFixes\Funcky.Analyzers.CodeFixes.csproj", "{B5AD3095-2558-4F4C-AD25-722616AE33E8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Analyzers.Package", "Funcky.Analyzers\Funcky.Analyzers.Package\Funcky.Analyzers.Package.csproj", "{C291C224-8166-448A-B493-0F2996D771A5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Analyzers.Test", "Funcky.Analyzers\Funcky.Analyzers.Test\Funcky.Analyzers.Test.csproj", "{F4E63FF9-F540-4B7C-9ABE-818C04C23CC6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Analyzers.Vsix", "Funcky.Analyzers\Funcky.Analyzers.Vsix\Funcky.Analyzers.Vsix.csproj", "{50AA2531-E3DA-4AD6-BBD4-C1B46ACD0804}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Generators", "Generators", "{18ED7503-3198-455D-861E-84841C48069C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.SourceGenerator", "Funcky.SourceGenerator\Funcky.SourceGenerator.csproj", "{1EE94F73-967E-49D1-BA68-EA2783EA0244}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.SourceGenerator.Test", "Funcky.SourceGenerator.Test\Funcky.SourceGenerator.Test.csproj", "{C1412F64-1D24-4245-8DC7-F4AF01815F58}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.BuiltinAnalyzers", "Funcky.Analyzers\Funcky.BuiltinAnalyzers\Funcky.BuiltinAnalyzers.csproj", "{539432B9-1257-4237-91FD-5D237855765E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Async", "Funcky.Async\Funcky.Async.csproj", "{38BC0217-F713-4B22-8080-06FFCCF692EB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Async.Test", "Funcky.Async.Test\Funcky.Async.Test.csproj", "{FCD81939-0D7E-432C-B9E4-E5A6BD32CD7E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Funcky.Test.Internal", "Funcky.Test.Internal\Funcky.Test.Internal.csproj", "{60DF907B-351D-48C9-80D8-E824C2BE2256}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Funcky.FsCheck", "Funcky.FsCheck\Funcky.FsCheck.fsproj", "{AC29055D-546B-4C32-8A7B-F7CF9541B08E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Funcky.TrimmingTest", "Funcky.TrimmingTest\Funcky.TrimmingTest.csproj", "{F35DB62D-22A8-41E8-B3BB-CD9064974190}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Funcky.BuiltinAnalyzers.CodeFixes", "Funcky.Analyzers\Funcky.BuiltinAnalyzers.CodeFixes\Funcky.BuiltinAnalyzers.CodeFixes.csproj", "{82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Funcky.Xunit.v3", "Funcky.Xunit.v3\Funcky.Xunit.v3.csproj", "{2EA64974-E4A4-416E-9E35-5744B5244EBB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Funcky.Xunit.v3.Test", "Funcky.Xunit.v3.Test\Funcky.Xunit.v3.Test.csproj", "{D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {A51E4B16-901A-4D9B-A0E1-E263FD93F2ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A51E4B16-901A-4D9B-A0E1-E263FD93F2ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A51E4B16-901A-4D9B-A0E1-E263FD93F2ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A51E4B16-901A-4D9B-A0E1-E263FD93F2ED}.Release|Any CPU.Build.0 = Release|Any CPU
- {EA10A7A1-6393-4B5F-BFF6-5937DA395141}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EA10A7A1-6393-4B5F-BFF6-5937DA395141}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EA10A7A1-6393-4B5F-BFF6-5937DA395141}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EA10A7A1-6393-4B5F-BFF6-5937DA395141}.Release|Any CPU.Build.0 = Release|Any CPU
- {F2E98B0D-CC17-4576-89DE-065FF475BE6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F2E98B0D-CC17-4576-89DE-065FF475BE6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F2E98B0D-CC17-4576-89DE-065FF475BE6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F2E98B0D-CC17-4576-89DE-065FF475BE6E}.Release|Any CPU.Build.0 = Release|Any CPU
- {C2400B4E-63DD-475E-BF7B-5D5079601F51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C2400B4E-63DD-475E-BF7B-5D5079601F51}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C2400B4E-63DD-475E-BF7B-5D5079601F51}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C2400B4E-63DD-475E-BF7B-5D5079601F51}.Release|Any CPU.Build.0 = Release|Any CPU
- {38795B14-3E1A-4491-AEA0-173A73CE9E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {38795B14-3E1A-4491-AEA0-173A73CE9E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {38795B14-3E1A-4491-AEA0-173A73CE9E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {38795B14-3E1A-4491-AEA0-173A73CE9E3A}.Release|Any CPU.Build.0 = Release|Any CPU
- {B5AD3095-2558-4F4C-AD25-722616AE33E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B5AD3095-2558-4F4C-AD25-722616AE33E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B5AD3095-2558-4F4C-AD25-722616AE33E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B5AD3095-2558-4F4C-AD25-722616AE33E8}.Release|Any CPU.Build.0 = Release|Any CPU
- {C291C224-8166-448A-B493-0F2996D771A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C291C224-8166-448A-B493-0F2996D771A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C291C224-8166-448A-B493-0F2996D771A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C291C224-8166-448A-B493-0F2996D771A5}.Release|Any CPU.Build.0 = Release|Any CPU
- {F4E63FF9-F540-4B7C-9ABE-818C04C23CC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F4E63FF9-F540-4B7C-9ABE-818C04C23CC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F4E63FF9-F540-4B7C-9ABE-818C04C23CC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F4E63FF9-F540-4B7C-9ABE-818C04C23CC6}.Release|Any CPU.Build.0 = Release|Any CPU
- {50AA2531-E3DA-4AD6-BBD4-C1B46ACD0804}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {50AA2531-E3DA-4AD6-BBD4-C1B46ACD0804}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {50AA2531-E3DA-4AD6-BBD4-C1B46ACD0804}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {50AA2531-E3DA-4AD6-BBD4-C1B46ACD0804}.Release|Any CPU.Build.0 = Release|Any CPU
- {1EE94F73-967E-49D1-BA68-EA2783EA0244}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1EE94F73-967E-49D1-BA68-EA2783EA0244}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1EE94F73-967E-49D1-BA68-EA2783EA0244}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1EE94F73-967E-49D1-BA68-EA2783EA0244}.Release|Any CPU.Build.0 = Release|Any CPU
- {C1412F64-1D24-4245-8DC7-F4AF01815F58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C1412F64-1D24-4245-8DC7-F4AF01815F58}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C1412F64-1D24-4245-8DC7-F4AF01815F58}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C1412F64-1D24-4245-8DC7-F4AF01815F58}.Release|Any CPU.Build.0 = Release|Any CPU
- {539432B9-1257-4237-91FD-5D237855765E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {539432B9-1257-4237-91FD-5D237855765E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {539432B9-1257-4237-91FD-5D237855765E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {539432B9-1257-4237-91FD-5D237855765E}.Release|Any CPU.Build.0 = Release|Any CPU
- {38BC0217-F713-4B22-8080-06FFCCF692EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {38BC0217-F713-4B22-8080-06FFCCF692EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {38BC0217-F713-4B22-8080-06FFCCF692EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {38BC0217-F713-4B22-8080-06FFCCF692EB}.Release|Any CPU.Build.0 = Release|Any CPU
- {FCD81939-0D7E-432C-B9E4-E5A6BD32CD7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FCD81939-0D7E-432C-B9E4-E5A6BD32CD7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FCD81939-0D7E-432C-B9E4-E5A6BD32CD7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FCD81939-0D7E-432C-B9E4-E5A6BD32CD7E}.Release|Any CPU.Build.0 = Release|Any CPU
- {60DF907B-351D-48C9-80D8-E824C2BE2256}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {60DF907B-351D-48C9-80D8-E824C2BE2256}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {60DF907B-351D-48C9-80D8-E824C2BE2256}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {60DF907B-351D-48C9-80D8-E824C2BE2256}.Release|Any CPU.Build.0 = Release|Any CPU
- {AC29055D-546B-4C32-8A7B-F7CF9541B08E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AC29055D-546B-4C32-8A7B-F7CF9541B08E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AC29055D-546B-4C32-8A7B-F7CF9541B08E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AC29055D-546B-4C32-8A7B-F7CF9541B08E}.Release|Any CPU.Build.0 = Release|Any CPU
- {F35DB62D-22A8-41E8-B3BB-CD9064974190}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F35DB62D-22A8-41E8-B3BB-CD9064974190}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F35DB62D-22A8-41E8-B3BB-CD9064974190}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F35DB62D-22A8-41E8-B3BB-CD9064974190}.Release|Any CPU.Build.0 = Release|Any CPU
- {82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2}.Release|Any CPU.Build.0 = Release|Any CPU
- {2EA64974-E4A4-416E-9E35-5744B5244EBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2EA64974-E4A4-416E-9E35-5744B5244EBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2EA64974-E4A4-416E-9E35-5744B5244EBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2EA64974-E4A4-416E-9E35-5744B5244EBB}.Release|Any CPU.Build.0 = Release|Any CPU
- {D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D9E9CC4B-34F9-4195-B21C-B11AD4DA63F3}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {38795B14-3E1A-4491-AEA0-173A73CE9E3A} = {BBE35279-7416-4B9D-B89D-B6D1FF369681}
- {B5AD3095-2558-4F4C-AD25-722616AE33E8} = {BBE35279-7416-4B9D-B89D-B6D1FF369681}
- {C291C224-8166-448A-B493-0F2996D771A5} = {BBE35279-7416-4B9D-B89D-B6D1FF369681}
- {F4E63FF9-F540-4B7C-9ABE-818C04C23CC6} = {BBE35279-7416-4B9D-B89D-B6D1FF369681}
- {50AA2531-E3DA-4AD6-BBD4-C1B46ACD0804} = {BBE35279-7416-4B9D-B89D-B6D1FF369681}
- {1EE94F73-967E-49D1-BA68-EA2783EA0244} = {18ED7503-3198-455D-861E-84841C48069C}
- {C1412F64-1D24-4245-8DC7-F4AF01815F58} = {18ED7503-3198-455D-861E-84841C48069C}
- {539432B9-1257-4237-91FD-5D237855765E} = {BBE35279-7416-4B9D-B89D-B6D1FF369681}
- {82BAB120-6F95-4B5A-83EA-C7BCFB1C03C2} = {BBE35279-7416-4B9D-B89D-B6D1FF369681}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {1F800283-D010-4227-94C9-09C02B0411DE}
- EndGlobalSection
-EndGlobal
diff --git a/Funcky.slnx b/Funcky.slnx
new file mode 100644
index 00000000..52d48113
--- /dev/null
+++ b/Funcky.slnx
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Funcky/Funcky.csproj b/Funcky/Funcky.csproj
index 8fa2c90f..56aad6bb 100644
--- a/Funcky/Funcky.csproj
+++ b/Funcky/Funcky.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
$(FunckyNewestTargetFramework);net8.0;net7.0;net6.0;net5.0;netcoreapp3.1;netstandard2.0;netstandard2.1
diff --git a/global.json b/global.json
index c6fbdb46..fe402e1f 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "9.0.100",
+ "version": "9.0.200",
"rollForward": "feature"
}
}