diff --git a/ChangeLog.md b/ChangeLog.md index c93ea27723..e527077e9e 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- [CLI] Add support for `slnx` files ([PR](https://github.com/dotnet/roslynator/pull/1662) by @darthtrevino) + - Bump Roslyn to 4.14.0 + - Drop support for .NET 7 SDK + ### Fixed - Fix analyzer [RCS1246](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1246) ([PR](https://github.com/dotnet/roslynator/pull/1676)) diff --git a/src/CommandLine.DocumentationGenerator/CommandLine.DocumentationGenerator.csproj b/src/CommandLine.DocumentationGenerator/CommandLine.DocumentationGenerator.csproj index 642d1aecea..a2c5d33083 100644 --- a/src/CommandLine.DocumentationGenerator/CommandLine.DocumentationGenerator.csproj +++ b/src/CommandLine.DocumentationGenerator/CommandLine.DocumentationGenerator.csproj @@ -1,11 +1,11 @@  - net8.0 + net9.0 - net7.0;net8.0;net9.0 + net8.0;net9.0 diff --git a/src/CommandLine/CommandLine.csproj b/src/CommandLine/CommandLine.csproj index cc3354cb0a..4184da5701 100644 --- a/src/CommandLine/CommandLine.csproj +++ b/src/CommandLine/CommandLine.csproj @@ -1,11 +1,11 @@  - net8.0 + net9.0 - net7.0;net8.0;net9.0 + net8.0;net9.0 @@ -56,6 +56,7 @@ + diff --git a/src/CommandLine/CommandLineHelpers.cs b/src/CommandLine/CommandLineHelpers.cs index 3e53226221..10e45c7975 100644 --- a/src/CommandLine/CommandLineHelpers.cs +++ b/src/CommandLine/CommandLineHelpers.cs @@ -21,7 +21,8 @@ public static bool IsGlobPatternForProject(string pattern) public static bool IsGlobPatternForSolution(string pattern) { return pattern.EndsWith(".sln", StringComparison.OrdinalIgnoreCase) - || pattern.EndsWith(".slnf", StringComparison.OrdinalIgnoreCase); + || pattern.EndsWith(".slnf", StringComparison.OrdinalIgnoreCase) + || pattern.EndsWith(".slnx", StringComparison.OrdinalIgnoreCase); } public static void WaitForKeyPress(string message = null) diff --git a/src/CommandLine/Commands/MSBuildWorkspaceCommand.cs b/src/CommandLine/Commands/MSBuildWorkspaceCommand.cs index b864ed33bc..09109acc1f 100644 --- a/src/CommandLine/Commands/MSBuildWorkspaceCommand.cs +++ b/src/CommandLine/Commands/MSBuildWorkspaceCommand.cs @@ -414,7 +414,8 @@ private static bool IsSolutionFile(string path) string extension = Path.GetExtension(path); return string.Equals(extension, ".sln", StringComparison.OrdinalIgnoreCase) - || string.Equals(extension, ".slnf", StringComparison.OrdinalIgnoreCase); + || string.Equals(extension, ".slnf", StringComparison.OrdinalIgnoreCase) + || string.Equals(extension, ".slnx", StringComparison.OrdinalIgnoreCase); } protected class ConsoleProgressReporter : IProgress diff --git a/src/CommandLine/Json/DiagnosticGitLabJsonSerializer.cs b/src/CommandLine/Json/DiagnosticGitLabJsonSerializer.cs index d9cad7086d..7e238b74e0 100644 --- a/src/CommandLine/Json/DiagnosticGitLabJsonSerializer.cs +++ b/src/CommandLine/Json/DiagnosticGitLabJsonSerializer.cs @@ -64,9 +64,11 @@ public static void Serialize( #else hashBytes = SHA256.HashData(source); #endif +#pragma warning disable CA1872 // Use Convert.ToHexString instead of BitConverter.ToString issueFingerPrint = BitConverter.ToString(hashBytes) .Replace("-", "") .ToLowerInvariant(); +#pragma warning restore CA1872 reportItems.Add(new GitLabIssue() { diff --git a/src/CommandLine/Program.cs b/src/CommandLine/Program.cs index 1cb094677a..016316fc61 100644 --- a/src/CommandLine/Program.cs +++ b/src/CommandLine/Program.cs @@ -871,7 +871,10 @@ private static bool TryParsePaths(IEnumerable values, out ImmutableArray string directoryPath = Environment.CurrentDirectory; - if (!TryFindFile(Directory.EnumerateFiles(directoryPath, "*.sln", SearchOption.TopDirectoryOnly), out string solutionPath)) + if (!TryFindFile( + Directory.EnumerateFiles(directoryPath, "*.sln", SearchOption.TopDirectoryOnly) + .Concat(Directory.EnumerateFiles(directoryPath, "*.slnx", SearchOption.TopDirectoryOnly)), + out string solutionPath)) { WriteLine($"Multiple MSBuild solution files found in '{directoryPath}'", Verbosity.Quiet); return false; diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 7df3271325..00315a9915 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -31,8 +31,8 @@ 1.0.0 - 4.12.0 - 4.12.0 + 4.14.0 + 4.14.0 4.12.11 $(RoslynatorCliVersion) $(Version) diff --git a/src/Tests/Analyzers.Tests/RCS1213RemoveUnusedMemberDeclarationTests.cs b/src/Tests/Analyzers.Tests/RCS1213RemoveUnusedMemberDeclarationTests.cs index e5d94a74a7..6ead68d2a0 100644 --- a/src/Tests/Analyzers.Tests/RCS1213RemoveUnusedMemberDeclarationTests.cs +++ b/src/Tests/Analyzers.Tests/RCS1213RemoveUnusedMemberDeclarationTests.cs @@ -119,7 +119,7 @@ class C { #region R -#endregion R + #endregion R } "); } diff --git a/src/Tests/CSharp.Tests/SyntaxKindTests.cs b/src/Tests/CSharp.Tests/SyntaxKindTests.cs index 31c4e27839..0d8269e87f 100644 --- a/src/Tests/CSharp.Tests/SyntaxKindTests.cs +++ b/src/Tests/CSharp.Tests/SyntaxKindTests.cs @@ -595,6 +595,10 @@ public static void DetectNewSyntaxKinds() case SyntaxKind.RefStructConstraint: // new in 4.12.0 case SyntaxKind.FieldExpression: + // new in 4.14.0 + case SyntaxKind.ExtensionKeyword: + case SyntaxKind.ExtensionDeclaration: + case SyntaxKind.IgnoredDirectiveTrivia: { break; } diff --git a/tools/generate_cli_docs.ps1 b/tools/generate_cli_docs.ps1 index 11aafe478a..5184abb048 100644 --- a/tools/generate_cli_docs.ps1 +++ b/tools/generate_cli_docs.ps1 @@ -5,7 +5,7 @@ dotnet build "$PSScriptRoot/../src/CommandLine.DocumentationGenerator/CommandLin if(!$?) { Read-Host; Exit } -& "$PSScriptRoot/../src/CommandLine.DocumentationGenerator/bin/Release/net8.0/Roslynator.CommandLine.DocumentationGenerator" ` +& "$PSScriptRoot/../src/CommandLine.DocumentationGenerator/bin/Release/net9.0/Roslynator.CommandLine.DocumentationGenerator" ` build ` "$PSScriptRoot/../src/CommandLine.DocumentationGenerator/data" ` "help,migrate" diff --git a/tools/generate_code.ps1 b/tools/generate_code.ps1 index a4a219de0c..d354701862 100644 --- a/tools/generate_code.ps1 +++ b/tools/generate_code.ps1 @@ -3,4 +3,4 @@ dotnet build "$PSScriptRoot/../src/Tools/Tools.sln" --no-restore /p:Configuratio if(!$?) { Read-Host; Exit } -dotnet "$PSScriptRoot/../src/Tools/CodeGenerator/bin/Release/net8.0/Roslynator.CodeGenerator.dll" "../src" +dotnet "$PSScriptRoot/../src/Tools/CodeGenerator/bin/Release/net9.0/Roslynator.CodeGenerator.dll" "../src" diff --git a/tools/generate_configuration_file.ps1 b/tools/generate_configuration_file.ps1 index ca16681201..ce2f4f71bf 100644 --- a/tools/generate_configuration_file.ps1 +++ b/tools/generate_configuration_file.ps1 @@ -3,7 +3,7 @@ dotnet build "$PSScriptRoot/../src/Tools/ConfigurationFileGenerator/Configuratio if(!$?) { Read-Host; Exit } -dotnet "$PSScriptRoot/../src/Tools/ConfigurationFileGenerator/bin/Release/net8.0/Roslynator.ConfigurationFileGenerator.dll" ` +dotnet "$PSScriptRoot/../src/Tools/ConfigurationFileGenerator/bin/Release/net9.0/Roslynator.ConfigurationFileGenerator.dll" ` "../src" ` "$PSScriptRoot/../src/Tools/ConfigurationFileGenerator/configuration.md" ` "build/configuration.md" diff --git a/tools/generate_metadata.ps1 b/tools/generate_metadata.ps1 index 0a0dc50964..f1f727bbee 100644 --- a/tools/generate_metadata.ps1 +++ b/tools/generate_metadata.ps1 @@ -3,4 +3,4 @@ dotnet build "$PSScriptRoot/../src/Tools/Tools.sln" --no-restore /p:"Configurati if(!$?) { Read-Host; Exit } -& "$PSScriptRoot/../src/Tools/MetadataGenerator/bin/Release/net8.0/Roslynator.MetadataGenerator" "../src" "build" +& "$PSScriptRoot/../src/Tools/MetadataGenerator/bin/Release/net9.0/Roslynator.MetadataGenerator" "../src" "build" diff --git a/tools/generate_ref_docs.ps1 b/tools/generate_ref_docs.ps1 index 3ee82ec673..94a62d3946 100644 --- a/tools/generate_ref_docs.ps1 +++ b/tools/generate_ref_docs.ps1 @@ -4,7 +4,7 @@ dotnet build generate_ref_docs.sln --no-restore -c Release -v minimal /m dotnet restore "$PSScriptRoot/../src/CommandLine.sln" -v minimal /m dotnet build "$PSScriptRoot/../src/CommandLine.sln" --no-restore -c Release -v minimal /m -& "$PSScriptRoot/../src/CommandLine/bin/Release/net8.0/Roslynator" generate-doc generate_ref_docs.sln ` +& "$PSScriptRoot/../src/CommandLine/bin/Release/net9.0/Roslynator" generate-doc generate_ref_docs.sln ` --properties Configuration=Release ` -o "build/ref" ` --host docusaurus `