Skip to content

Commit 1a4bb6a

Browse files
committed
Cleaning up printing context
1 parent 5663fa4 commit 1a4bb6a

188 files changed

Lines changed: 267 additions & 307 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using CSharpier.Core.Utilities;
2+
3+
namespace CSharpier.Core;
4+
5+
internal abstract class BasePrintingContext
6+
{
7+
public required string LineEnding { get; init; }
8+
9+
private readonly Dictionary<string, int> groupNumberByValue = [];
10+
11+
public string GroupFor(string value)
12+
{
13+
var number = this.groupNumberByValue.GetValueOrDefault(value, 0) + 1;
14+
this.groupNumberByValue[value] = number;
15+
16+
return value + " #" + number;
17+
}
18+
}

Src/CSharpier.Core/CSharp/CSharpFormatter.cs

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -148,17 +148,7 @@ bool TryGetCompilationFailure(out CodeFormatterResult compilationResult)
148148
try
149149
{
150150
var lineEnding = PrinterOptions.GetLineEnding(syntaxTree.ToString(), printerOptions);
151-
var printingContext = new PrintingContext
152-
{
153-
NormalizedXml = string.Empty,
154-
Options = new PrintingContext.PrintingContextOptions
155-
{
156-
LineEnding = lineEnding,
157-
IndentSize = printerOptions.IndentSize,
158-
UseTabs = printerOptions.UseTabs,
159-
XmlWhitespaceSensitivity = XmlWhitespaceSensitivity.Strict,
160-
},
161-
};
151+
var printingContext = new CSharpPrintingContext { LineEnding = lineEnding };
162152
var document = Node.Print(rootNode, printingContext);
163153
var formattedCode = DocPrinter.DocPrinter.Print(document, printerOptions, lineEnding);
164154
var reorderedModifiers = printingContext.State.ReorderedModifiers;
@@ -176,17 +166,7 @@ bool TryGetCompilationFailure(out CodeFormatterResult compilationResult)
176166
return result;
177167
}
178168

179-
var formattingContext2 = new PrintingContext
180-
{
181-
NormalizedXml = string.Empty,
182-
Options = new PrintingContext.PrintingContextOptions
183-
{
184-
LineEnding = lineEnding,
185-
IndentSize = printerOptions.IndentSize,
186-
UseTabs = printerOptions.UseTabs,
187-
XmlWhitespaceSensitivity = XmlWhitespaceSensitivity.Strict,
188-
},
189-
};
169+
var formattingContext2 = new CSharpPrintingContext { LineEnding = lineEnding };
190170
document = Node.Print(
191171
await syntaxTree.GetRootAsync(cancellationToken),
192172
formattingContext2

Src/CSharpier.Core/CSharp/SyntaxPrinter/ArgumentListLikeSyntax.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public static Doc Print(
1212
SyntaxToken openParenToken,
1313
SeparatedSyntaxList<ArgumentSyntax> arguments,
1414
SyntaxToken closeParenToken,
15-
PrintingContext context
15+
CSharpPrintingContext context
1616
)
1717
{
1818
Doc? args;

Src/CSharpier.Core/CSharp/SyntaxPrinter/ArgumentListWithTrailingLambda.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ internal static class ArgumentListWithTrailingLambda
1010
public static Doc Print(
1111
SeparatedSyntaxList<ArgumentSyntax> arguments,
1212
LambdaExpressionSyntax lastLambda,
13-
PrintingContext context
13+
CSharpPrintingContext context
1414
)
1515
{
1616
var chop = Doc.Concat(

Src/CSharpier.Core/CSharp/SyntaxPrinter/AttributeLists.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ internal static class AttributeLists
1111
public static Doc Print(
1212
SyntaxNode node,
1313
SyntaxList<AttributeListSyntax> attributeLists,
14-
PrintingContext context
14+
CSharpPrintingContext context
1515
)
1616
{
1717
if (attributeLists.Count == 0)

Src/CSharpier.Core/CSharp/SyntaxPrinter/PrintingContext.cs renamed to Src/CSharpier.Core/CSharp/SyntaxPrinter/CSharpPrintingContext.cs

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,24 @@
11
using CSharpier.Core.DocTypes;
2-
using CSharpier.Core.Utilities;
32
using Microsoft.CodeAnalysis;
43

54
namespace CSharpier.Core.CSharp.SyntaxPrinter;
65

7-
internal class PrintingContext
6+
internal class CSharpPrintingContext : BasePrintingContext
87
{
9-
public required string NormalizedXml { get; init; }
10-
public required PrintingContextOptions Options { get; init; }
118
public PrintingContextState State { get; } = new();
129

13-
private readonly Dictionary<string, int> groupNumberByValue = [];
14-
15-
public string GroupFor(string value)
16-
{
17-
var number = this.groupNumberByValue.GetValueOrDefault(value, 0) + 1;
18-
this.groupNumberByValue[value] = number;
19-
20-
return value + " #" + number;
21-
}
22-
23-
public PrintingContext WithSkipNextLeadingTrivia()
10+
public CSharpPrintingContext WithSkipNextLeadingTrivia()
2411
{
2512
this.State.SkipNextLeadingTrivia = true;
2613
return this;
2714
}
2815

29-
public PrintingContext WithTrailingComma(SyntaxTrivia syntaxTrivia, Doc doc)
16+
public CSharpPrintingContext WithTrailingComma(SyntaxTrivia syntaxTrivia, Doc doc)
3017
{
3118
this.State.TrailingComma = new TrailingCommaContext(syntaxTrivia, doc);
3219
return this;
3320
}
3421

35-
public class PrintingContextOptions
36-
{
37-
public required string LineEnding { get; init; }
38-
public required int IndentSize { get; init; }
39-
public required bool UseTabs { get; init; }
40-
public required XmlWhitespaceSensitivity XmlWhitespaceSensitivity { get; init; }
41-
}
42-
4322
public class PrintingContextState
4423
{
4524
public int PrintingDepth { get; set; }

Src/CSharpier.Core/CSharp/SyntaxPrinter/CSharpierIgnore.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ or SyntaxKind.SwitchSection
8181
[SkipLocalsInit]
8282
public static List<Doc> PrintNodesRespectingRangeIgnore<T>(
8383
SyntaxList<T> list,
84-
PrintingContext context
84+
CSharpPrintingContext context
8585
)
8686
where T : SyntaxNode
8787
{
@@ -137,14 +137,14 @@ firstUnformattedNode is StatementSyntax statementSyntax
137137
return statements;
138138
}
139139

140-
public static string PrintWithoutFormatting(SyntaxNode syntaxNode, PrintingContext context)
140+
public static string PrintWithoutFormatting(SyntaxNode syntaxNode, CSharpPrintingContext context)
141141
{
142142
return PrintWithoutFormatting(syntaxNode.GetText().ToString(), context);
143143
}
144144

145-
public static string PrintWithoutFormatting(string code, PrintingContext context)
145+
public static string PrintWithoutFormatting(string code, CSharpPrintingContext context)
146146
{
147147
// trim trailing whitespace + replace only existing line endings
148-
return WhiteSpaceLineEndingsRegex.Replace(code, context.Options.LineEnding);
148+
return WhiteSpaceLineEndingsRegex.Replace(code, context.LineEnding);
149149
}
150150
}

Src/CSharpier.Core/CSharp/SyntaxPrinter/ConstraintClauses.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ internal static class ConstraintClauses
99
{
1010
public static Doc Print(
1111
SyntaxList<TypeParameterConstraintClauseSyntax> constraintClauses,
12-
PrintingContext context
12+
CSharpPrintingContext context
1313
)
1414
{
1515
if (constraintClauses.Count == 0)

Src/CSharpier.Core/CSharp/SyntaxPrinter/MembersWithForcedLines.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ internal static class MembersWithForcedLines
1515
public static List<Doc> Print<T>(
1616
CSharpSyntaxNode node,
1717
IReadOnlyList<T> members,
18-
PrintingContext context,
18+
CSharpPrintingContext context,
1919
bool skipFirstHardLine = false
2020
)
2121
where T : MemberDeclarationSyntax

Src/CSharpier.Core/CSharp/SyntaxPrinter/Modifiers.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ private static int GetIndex(string? value)
4444

4545
private static readonly DefaultOrder Comparer = new();
4646

47-
public static Doc Print(SyntaxTokenList modifiers, PrintingContext context)
47+
public static Doc Print(SyntaxTokenList modifiers, CSharpPrintingContext context)
4848
{
4949
if (modifiers.Count == 0)
5050
{
@@ -54,7 +54,7 @@ public static Doc Print(SyntaxTokenList modifiers, PrintingContext context)
5454
return Doc.Group(Doc.Join(" ", modifiers.Select(o => Token.Print(o, context))), " ");
5555
}
5656

57-
public static Doc PrintSorted(SyntaxTokenList modifiers, PrintingContext context)
57+
public static Doc PrintSorted(SyntaxTokenList modifiers, CSharpPrintingContext context)
5858
{
5959
return PrintWithSortedModifiers(
6060
modifiers,
@@ -66,7 +66,7 @@ public static Doc PrintSorted(SyntaxTokenList modifiers, PrintingContext context
6666

6767
public static Doc PrintSorterWithoutLeadingTrivia(
6868
SyntaxTokenList modifiers,
69-
PrintingContext context
69+
CSharpPrintingContext context
7070
)
7171
{
7272
return PrintWithSortedModifiers(
@@ -90,7 +90,7 @@ PrintingContext context
9090

9191
private static Doc PrintWithSortedModifiers(
9292
in SyntaxTokenList modifiers,
93-
PrintingContext context,
93+
CSharpPrintingContext context,
9494
Func<IReadOnlyList<SyntaxToken>, Doc> print
9595
)
9696
{

0 commit comments

Comments
 (0)