diff --git a/.github/workflows/format_repositories.yml b/.github/workflows/format_repositories.yml index 9bbb2793c..69e7009cc 100644 --- a/.github/workflows/format_repositories.yml +++ b/.github/workflows/format_repositories.yml @@ -14,7 +14,7 @@ jobs: path: csharpier - uses: actions/setup-dotnet@v1 with: - dotnet-version: '7.0.100' + dotnet-version: '7.0.304' - uses: actions/checkout@v2 with: repository: belav/csharpier-repos diff --git a/.github/workflows/publish_nuget.yml b/.github/workflows/publish_nuget.yml index 8fdac4863..fbd51ed89 100644 --- a/.github/workflows/publish_nuget.yml +++ b/.github/workflows/publish_nuget.yml @@ -11,7 +11,7 @@ jobs: - uses: actions/setup-dotnet@v1 with: dotnet-version: | - 7.0.100 + 7.0.304 6.0.300 - run: dotnet test Src/CSharpier.Tests/CSharpier.Tests.csproj publish-nuget: @@ -26,7 +26,7 @@ jobs: - uses: actions/setup-dotnet@v1 with: dotnet-version: | - 7.0.100 + 7.0.304 6.0.300 - name: Publish CSharpier.Core library on version change uses: alirezanet/publish-nuget@v3.0.4 diff --git a/.github/workflows/validate_pull_request.yml b/.github/workflows/validate_pull_request.yml index c572260e7..ebf873920 100644 --- a/.github/workflows/validate_pull_request.yml +++ b/.github/workflows/validate_pull_request.yml @@ -11,7 +11,7 @@ jobs: - uses: actions/setup-dotnet@v1 with: dotnet-version: | - 7.0.100 + 7.0.304 6.0.300 - run: | dotnet build CSharpier.sln -c release @@ -24,7 +24,7 @@ jobs: - uses: actions/setup-dotnet@v1 with: dotnet-version: | - 7.0.100 + 7.0.304 6.0.300 - run: | dotnet tool restore @@ -37,7 +37,7 @@ jobs: - uses: actions/setup-dotnet@v1 with: dotnet-version: | - 7.0.100 + 7.0.304 6.0.300 - run: | dotnet build Src/CSharpier.MsBuild/CSharpier.MsBuild.csproj diff --git a/Directory.Packages.props b/Directory.Packages.props index ea54e97e6..0d5a0647a 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -10,8 +10,8 @@ - - + + @@ -19,13 +19,13 @@ - + - + diff --git a/Dockerfile b/Dockerfile index 4e7bb76b6..52c861fc3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/sdk:7.0.100 AS build +FROM mcr.microsoft.com/dotnet/sdk:7.0.304 AS build RUN apt-get update && \ apt-get install curl gnupg -yq && \ diff --git a/Src/CSharpier.FakeGenerators/CSharpier.FakeGenerators.csproj b/Src/CSharpier.FakeGenerators/CSharpier.FakeGenerators.csproj index 32715046e..44faf3e35 100644 --- a/Src/CSharpier.FakeGenerators/CSharpier.FakeGenerators.csproj +++ b/Src/CSharpier.FakeGenerators/CSharpier.FakeGenerators.csproj @@ -3,7 +3,7 @@ Exe - - + + diff --git a/Src/CSharpier.Generators/CSharpier.Generators.csproj b/Src/CSharpier.Generators/CSharpier.Generators.csproj index 166b8a159..24154533b 100644 --- a/Src/CSharpier.Generators/CSharpier.Generators.csproj +++ b/Src/CSharpier.Generators/CSharpier.Generators.csproj @@ -2,6 +2,7 @@ net6.0;net7.0;netstandard2.0 true + true true 10 SYSLIB0013 diff --git a/Src/CSharpier.Tests.Generators/CSharpier.Tests.Generators.csproj b/Src/CSharpier.Tests.Generators/CSharpier.Tests.Generators.csproj index 98e723bf3..58fcb8da3 100644 --- a/Src/CSharpier.Tests.Generators/CSharpier.Tests.Generators.csproj +++ b/Src/CSharpier.Tests.Generators/CSharpier.Tests.Generators.csproj @@ -2,14 +2,15 @@ true true + true SYSLIB0013 - - + + - + diff --git a/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/ClassDeclarations.test b/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/ClassDeclarations.test index 2980e6eae..8097a98a3 100644 --- a/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/ClassDeclarations.test +++ b/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/ClassDeclarations.test @@ -59,3 +59,17 @@ public class IdentityDbContext where TKey : IEquatable { } file class FileScopedType { } + +public class NamedItem(string name) +{ + public string Name => name; +} + +public class NamedItem2( + string name1________________________________, + string name2________________________________ +) +{ + public string Name1 => name1; + public string Name2 => name1; +} diff --git a/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/UsingDirectives.test b/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/UsingDirectives.test index 9f53a36e9..c4d4e635c 100644 --- a/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/UsingDirectives.test +++ b/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/UsingDirectives.test @@ -11,6 +11,7 @@ static // static trailing Third; using M = System.Math; +using Point = (int x, int y); using static System.Math; diff --git a/Src/CSharpier/CSharpier.csproj b/Src/CSharpier/CSharpier.csproj index 2c9c222b3..0c56708a3 100644 --- a/Src/CSharpier/CSharpier.csproj +++ b/Src/CSharpier/CSharpier.csproj @@ -1,5 +1,5 @@ - + CSharpier.Core net6.0;net7.0;netstandard2.0 diff --git a/Src/CSharpier/SyntaxNodeComparer.generated.cs b/Src/CSharpier/SyntaxNodeComparer.generated.cs index eb5d43abb..10e4a9d7d 100644 --- a/Src/CSharpier/SyntaxNodeComparer.generated.cs +++ b/Src/CSharpier/SyntaxNodeComparer.generated.cs @@ -1023,6 +1023,8 @@ private CompareResult CompareClassDeclarationSyntax(ClassDeclarationSyntax origi if (result.IsInvalid) return result; result = this.Compare(originalNode.OpenBraceToken, formattedNode.OpenBraceToken, originalNode, formattedNode); if (result.IsInvalid) return result; + originalStack.Push((originalNode.ParameterList, originalNode)); + formattedStack.Push((formattedNode.ParameterList, formattedNode)); result = this.Compare(originalNode.SemicolonToken, formattedNode.SemicolonToken, originalNode, formattedNode); if (result.IsInvalid) return result; originalStack.Push((originalNode.TypeParameterList, originalNode)); @@ -2130,6 +2132,8 @@ private CompareResult CompareInterfaceDeclarationSyntax(InterfaceDeclarationSynt if (result.IsInvalid) return result; result = this.Compare(originalNode.OpenBraceToken, formattedNode.OpenBraceToken, originalNode, formattedNode); if (result.IsInvalid) return result; + originalStack.Push((originalNode.ParameterList, originalNode)); + formattedStack.Push((formattedNode.ParameterList, formattedNode)); result = this.Compare(originalNode.SemicolonToken, formattedNode.SemicolonToken, originalNode, formattedNode); if (result.IsInvalid) return result; originalStack.Push((originalNode.TypeParameterList, originalNode)); @@ -3325,6 +3329,8 @@ private CompareResult CompareStructDeclarationSyntax(StructDeclarationSyntax ori if (result.IsInvalid) return result; result = this.Compare(originalNode.OpenBraceToken, formattedNode.OpenBraceToken, originalNode, formattedNode); if (result.IsInvalid) return result; + originalStack.Push((originalNode.ParameterList, originalNode)); + formattedStack.Push((formattedNode.ParameterList, formattedNode)); result = this.Compare(originalNode.SemicolonToken, formattedNode.SemicolonToken, originalNode, formattedNode); if (result.IsInvalid) return result; originalStack.Push((originalNode.TypeParameterList, originalNode)); @@ -3641,10 +3647,14 @@ private CompareResult CompareUsingDirectiveSyntax(UsingDirectiveSyntax originalN if (originalNode.IsMissing != formattedNode.IsMissing) return NotEqual(originalNode, formattedNode); originalStack.Push((originalNode.Name, originalNode)); formattedStack.Push((formattedNode.Name, formattedNode)); + originalStack.Push((originalNode.NamespaceOrType, originalNode)); + formattedStack.Push((formattedNode.NamespaceOrType, formattedNode)); result = this.Compare(originalNode.SemicolonToken, formattedNode.SemicolonToken, originalNode, formattedNode); if (result.IsInvalid) return result; result = this.Compare(originalNode.StaticKeyword, formattedNode.StaticKeyword, originalNode, formattedNode); if (result.IsInvalid) return result; + result = this.Compare(originalNode.UnsafeKeyword, formattedNode.UnsafeKeyword, originalNode, formattedNode); + if (result.IsInvalid) return result; result = this.Compare(originalNode.UsingKeyword, formattedNode.UsingKeyword, originalNode, formattedNode); if (result.IsInvalid) return result; return Equal; diff --git a/Src/CSharpier/SyntaxNodeJsonWriter.generated.cs b/Src/CSharpier/SyntaxNodeJsonWriter.generated.cs index 00067f858..2a5af6316 100644 --- a/Src/CSharpier/SyntaxNodeJsonWriter.generated.cs +++ b/Src/CSharpier/SyntaxNodeJsonWriter.generated.cs @@ -1505,6 +1505,12 @@ public static void WriteClassDeclarationSyntax(StringBuilder builder, ClassDecla WriteSyntaxToken(openBraceTokenBuilder, syntaxNode.OpenBraceToken); properties.Add($"\"openBraceToken\":{openBraceTokenBuilder.ToString()}"); } + if (syntaxNode.ParameterList != default(ParameterListSyntax)) + { + var parameterListBuilder = new StringBuilder(); + WriteParameterListSyntax(parameterListBuilder, syntaxNode.ParameterList); + properties.Add($"\"parameterList\":{parameterListBuilder.ToString()}"); + } if (syntaxNode.SemicolonToken != default(SyntaxToken)) { var semicolonTokenBuilder = new StringBuilder(); @@ -4400,6 +4406,12 @@ public static void WriteInterfaceDeclarationSyntax(StringBuilder builder, Interf WriteSyntaxToken(openBraceTokenBuilder, syntaxNode.OpenBraceToken); properties.Add($"\"openBraceToken\":{openBraceTokenBuilder.ToString()}"); } + if (syntaxNode.ParameterList != default(ParameterListSyntax)) + { + var parameterListBuilder = new StringBuilder(); + WriteParameterListSyntax(parameterListBuilder, syntaxNode.ParameterList); + properties.Add($"\"parameterList\":{parameterListBuilder.ToString()}"); + } if (syntaxNode.SemicolonToken != default(SyntaxToken)) { var semicolonTokenBuilder = new StringBuilder(); @@ -7465,6 +7477,12 @@ public static void WriteStructDeclarationSyntax(StringBuilder builder, StructDec WriteSyntaxToken(openBraceTokenBuilder, syntaxNode.OpenBraceToken); properties.Add($"\"openBraceToken\":{openBraceTokenBuilder.ToString()}"); } + if (syntaxNode.ParameterList != default(ParameterListSyntax)) + { + var parameterListBuilder = new StringBuilder(); + WriteParameterListSyntax(parameterListBuilder, syntaxNode.ParameterList); + properties.Add($"\"parameterList\":{parameterListBuilder.ToString()}"); + } if (syntaxNode.SemicolonToken != default(SyntaxToken)) { var semicolonTokenBuilder = new StringBuilder(); @@ -8251,6 +8269,12 @@ public static void WriteUsingDirectiveSyntax(StringBuilder builder, UsingDirecti WriteSyntaxNode(nameBuilder, syntaxNode.Name); properties.Add($"\"name\":{nameBuilder.ToString()}"); } + if (syntaxNode.NamespaceOrType != default(TypeSyntax)) + { + var namespaceOrTypeBuilder = new StringBuilder(); + WriteSyntaxNode(namespaceOrTypeBuilder, syntaxNode.NamespaceOrType); + properties.Add($"\"namespaceOrType\":{namespaceOrTypeBuilder.ToString()}"); + } if (syntaxNode.SemicolonToken != default(SyntaxToken)) { var semicolonTokenBuilder = new StringBuilder(); @@ -8263,6 +8287,12 @@ public static void WriteUsingDirectiveSyntax(StringBuilder builder, UsingDirecti WriteSyntaxToken(staticKeywordBuilder, syntaxNode.StaticKeyword); properties.Add($"\"staticKeyword\":{staticKeywordBuilder.ToString()}"); } + if (syntaxNode.UnsafeKeyword != default(SyntaxToken)) + { + var unsafeKeywordBuilder = new StringBuilder(); + WriteSyntaxToken(unsafeKeywordBuilder, syntaxNode.UnsafeKeyword); + properties.Add($"\"unsafeKeyword\":{unsafeKeywordBuilder.ToString()}"); + } if (syntaxNode.UsingKeyword != default(SyntaxToken)) { var usingKeywordBuilder = new StringBuilder(); diff --git a/Src/CSharpier/SyntaxPrinter/SyntaxNodePrinters/BaseTypeDeclaration.cs b/Src/CSharpier/SyntaxPrinter/SyntaxNodePrinters/BaseTypeDeclaration.cs index 327fadd7f..95285d43d 100644 --- a/Src/CSharpier/SyntaxPrinter/SyntaxNodePrinters/BaseTypeDeclaration.cs +++ b/Src/CSharpier/SyntaxPrinter/SyntaxNodePrinters/BaseTypeDeclaration.cs @@ -30,6 +30,7 @@ public static Doc Print(BaseTypeDeclarationSyntax node, FormattingContext contex if (node is ClassDeclarationSyntax classDeclarationSyntax) { keyword = classDeclarationSyntax.Keyword; + parameterList = classDeclarationSyntax.ParameterList; } else if (node is StructDeclarationSyntax structDeclarationSyntax) { diff --git a/Src/CSharpier/SyntaxPrinter/SyntaxNodePrinters/UsingDirective.cs b/Src/CSharpier/SyntaxPrinter/SyntaxNodePrinters/UsingDirective.cs index 0f0740262..5314f2396 100644 --- a/Src/CSharpier/SyntaxPrinter/SyntaxNodePrinters/UsingDirective.cs +++ b/Src/CSharpier/SyntaxPrinter/SyntaxNodePrinters/UsingDirective.cs @@ -14,7 +14,7 @@ public static Doc Print( Token.PrintWithSuffix(node.UsingKeyword, " ", context), Token.PrintWithSuffix(node.StaticKeyword, " ", context), node.Alias == null ? Doc.Null : NameEquals.Print(node.Alias, context), - Node.Print(node.Name, context), + Node.Print(node.NamespaceOrType, context), Token.Print(node.SemicolonToken, context) ); } diff --git a/Src/SyntaxFinder/SyntaxFinder.csproj b/Src/SyntaxFinder/SyntaxFinder.csproj index 7bd7678eb..a6ef1dc6a 100644 --- a/Src/SyntaxFinder/SyntaxFinder.csproj +++ b/Src/SyntaxFinder/SyntaxFinder.csproj @@ -3,6 +3,6 @@ Exe - + diff --git a/global.json b/global.json index 77c776f82..065581b4a 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "7.0.100", + "version": "7.0.304", "rollForward": "latestFeature" } }