From d29406b7257dfa5fde52ab0c619569df8a8ddccd Mon Sep 17 00:00:00 2001 From: Yoshi Askharoun Date: Wed, 31 Jan 2024 18:43:04 -0600 Subject: [PATCH] Improve formatting of Program.ToString() --- libs/UIX.Asm/Models/SyntaxModels.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/libs/UIX.Asm/Models/SyntaxModels.cs b/libs/UIX.Asm/Models/SyntaxModels.cs index 05ac8a5..b9455be 100644 --- a/libs/UIX.Asm/Models/SyntaxModels.cs +++ b/libs/UIX.Asm/Models/SyntaxModels.cs @@ -39,10 +39,22 @@ public record Program(IEnumerable Imports, IEnumerable Body) { public override string ToString() { + const string lineEnding = "\r\n"; + const string indent = " "; StringBuilder sb = new(); - sb.AppendJoin("\r\n", Imports.Select(i => i.ToString())); - sb.AppendJoin("\r\n", Body.Select(b => b.ToString())); + sb.AppendJoin(lineEnding, Imports.Select(i => i.ToString())); + sb.Append(lineEnding); + sb.Append(lineEnding); + + foreach (var bodyItem in Body) + { + if (bodyItem is Instruction) + sb.Append(indent); + + sb.Append(bodyItem.ToString()); + sb.Append(lineEnding); + } return sb.ToString(); }