Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/ConsoleAppFramework/ConsoleAppGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context)

static void EmitConsoleAppTemplateSource(IncrementalGeneratorPostInitializationContext context)
{
context.AddSource("ConsoleApp.g.cs", ConsoleAppBaseCode.InitializationCode);
context.AddSource("ConsoleApp.g.cs", ConsoleAppBaseCode.InitializationCode.ReplaceLineEndings());
}

static void EmitConsoleAppRun(SourceProductionContext sourceProductionContext, CommandContext commandContext)
Expand All @@ -209,7 +209,7 @@ static void EmitConsoleAppRun(SourceProductionContext sourceProductionContext, C
var withId = new Emitter.CommandWithId(null, command, -1);
emitter.EmitRun(sb, withId, command.IsAsync);
}
sourceProductionContext.AddSource("ConsoleApp.Run.g.cs", sb.ToString());
sourceProductionContext.AddSource("ConsoleApp.Run.g.cs", sb.ToString().ReplaceLineEndings());

var help = new SourceBuilder(0);
help.AppendLine(ConsoleAppBaseCode.GeneratedCodeHeader);
Expand All @@ -218,7 +218,7 @@ static void EmitConsoleAppRun(SourceProductionContext sourceProductionContext, C
var emitter = new Emitter();
emitter.EmitHelp(help, command);
}
sourceProductionContext.AddSource("ConsoleApp.Run.Help.g.cs", help.ToString());
sourceProductionContext.AddSource("ConsoleApp.Run.Help.g.cs", help.ToString().ReplaceLineEndings());
}

static void EmitConsoleAppBuilder(SourceProductionContext sourceProductionContext, CollectBuilderContext collectBuilderContext)
Expand Down Expand Up @@ -267,7 +267,7 @@ static void EmitConsoleAppBuilder(SourceProductionContext sourceProductionContex
var emitter = new Emitter();
emitter.EmitBuilder(sb, commandIds, hasRun, hasRunAsync);
}
sourceProductionContext.AddSource("ConsoleApp.Builder.g.cs", sb.ToString());
sourceProductionContext.AddSource("ConsoleApp.Builder.g.cs", sb.ToString().ReplaceLineEndings());

// Build Help

Expand All @@ -279,7 +279,7 @@ static void EmitConsoleAppBuilder(SourceProductionContext sourceProductionContex
var emitter = new Emitter();
emitter.EmitHelp(help, commandIds!);
}
sourceProductionContext.AddSource("ConsoleApp.Builder.Help.g.cs", help.ToString());
sourceProductionContext.AddSource("ConsoleApp.Builder.Help.g.cs", help.ToString().ReplaceLineEndings());
}

static void EmitConsoleAppConfigure(SourceProductionContext sourceProductionContext, DllReference dllReference)
Expand Down Expand Up @@ -311,7 +311,7 @@ static void EmitConsoleAppConfigure(SourceProductionContext sourceProductionCont
sb2.AppendLine("using Microsoft.Extensions.Hosting;");
var emitter = new Emitter();
emitter.EmitAsConsoleAppBuilder(sb2, dllReference);
sourceProductionContext.AddSource("ConsoleAppHostBuilderExtensions.g.cs", sb2.ToString());
sourceProductionContext.AddSource("ConsoleAppHostBuilderExtensions.g.cs", sb2.ToString().ReplaceLineEndings());
}

using (sb.BeginBlock("internal static partial class ConsoleApp"))
Expand All @@ -321,7 +321,7 @@ static void EmitConsoleAppConfigure(SourceProductionContext sourceProductionCont
emitter.EmitConfigure(sb, dllReference);
}

sourceProductionContext.AddSource("ConsoleApp.Builder.Configure.g.cs", sb.ToString());
sourceProductionContext.AddSource("ConsoleApp.Builder.Configure.g.cs", sb.ToString().ReplaceLineEndings());
}

class CommandContext(Command? command, bool isAsync, DiagnosticReporter diagnosticReporter, InvocationExpressionSyntax node) : IEquatable<CommandContext>
Expand Down
23 changes: 23 additions & 0 deletions src/ConsoleAppFramework/StringExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
namespace ConsoleAppFramework;

internal static class StringExtensions
{
#if NETSTANDARD2_0
public static string ReplaceLineEndings(this string input)
{
#pragma warning disable RS1035
return ReplaceLineEndings(input, Environment.NewLine);
#pragma warning restore RS1035
}

public static string ReplaceLineEndings(this string text, string replacementText)
{
text = text.Replace("\r\n", "\n");

if (replacementText != "\n")
text = text.Replace("\n", replacementText);

return text;
}
#endif
}