diff --git a/src/InterpolationCodeWriter/SourceTextWriter.WriteLine.cs b/src/InterpolationCodeWriter/SourceTextWriter.WriteLine.cs
index a494bc4..aef8682 100644
--- a/src/InterpolationCodeWriter/SourceTextWriter.WriteLine.cs
+++ b/src/InterpolationCodeWriter/SourceTextWriter.WriteLine.cs
@@ -23,6 +23,110 @@ public void WriteLine()
_builder.Append(_newLine);
}
+ /// Write boolean directly into the generated output and appends a new line.
+ /// The boolean to be written.
+ public void WriteLine(bool value)
+ {
+ Write(value);
+ _builder.Append(_newLine);
+ }
+
+ /// Write character directly into the generated output and appends a new line.
+ /// The character to be written.
+ public void WriteLine(char value)
+ {
+ Write(value);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(byte number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(sbyte number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(short number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(ushort number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(int number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(uint number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(long number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(ulong number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(float number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(double number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
+ /// Write number directly into the generated output and appends a new line.
+ /// The number to be written.
+ public void WriteLine(decimal number)
+ {
+ Write(number);
+ _builder.Append(_newLine);
+ }
+
/// Write boolean directly into the generated output and appends a new line.
/// The boolean to be written.
public void WriteLine(bool? value)
diff --git a/tests/InterpolationCodeWriter.Tests/SourceTextWriterTest.WriteLine.cs b/tests/InterpolationCodeWriter.Tests/SourceTextWriterTest.WriteLine.cs
index 7803553..811c506 100644
--- a/tests/InterpolationCodeWriter.Tests/SourceTextWriterTest.WriteLine.cs
+++ b/tests/InterpolationCodeWriter.Tests/SourceTextWriterTest.WriteLine.cs
@@ -131,4 +131,340 @@ public void MultipleWriteLineThenWriteVerifiesIndentation()
Assert.Equal("line1\n line2\n line3", writer.ToStringAndReset());
}
+
+ [Fact]
+ public void WriteLineBoolNonNullableAppendsValueAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine(true);
+
+ Assert.Equal("True\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineCharNonNullableAppendsCharacterAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine('X');
+
+ Assert.Equal("X\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineByteAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((byte)255);
+
+ Assert.Equal("255\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineSByteAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((sbyte)-1);
+
+ Assert.Equal("-1\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineShortAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((short)1000);
+
+ Assert.Equal("1000\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineUShortAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((ushort)2000);
+
+ Assert.Equal("2000\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineIntNonNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine(42);
+
+ Assert.Equal("42\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineUIntAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((uint)100);
+
+ Assert.Equal("100\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineLongAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine(123L);
+
+ Assert.Equal("123\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineULongAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((ulong)456);
+
+ Assert.Equal("456\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineFloatAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine(1.5f);
+
+ Assert.Equal("1.5\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineDoubleAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine(3.14);
+
+ Assert.Equal("3.14\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineDecimalAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine(9.99m);
+
+ Assert.Equal("9.99\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullBoolAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((bool?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineCharNullableAppendsCharacterAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((char?)'X');
+
+ Assert.Equal("X\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullCharAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((char?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineByteNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((byte?)255);
+
+ Assert.Equal("255\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullByteAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((byte?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineSByteNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((sbyte?)-1);
+
+ Assert.Equal("-1\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullSByteAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((sbyte?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineShortNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((short?)1000);
+
+ Assert.Equal("1000\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullShortAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((short?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineUShortNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((ushort?)2000);
+
+ Assert.Equal("2000\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullUShortAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((ushort?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineUIntNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((uint?)100);
+
+ Assert.Equal("100\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullUIntAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((uint?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineLongNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((long?)123);
+
+ Assert.Equal("123\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullLongAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((long?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineULongNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((ulong?)456);
+
+ Assert.Equal("456\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullULongAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((ulong?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineFloatNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((float?)1.5f);
+
+ Assert.Equal("1.5\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullFloatAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((float?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineDoubleNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((double?)3.14);
+
+ Assert.Equal("3.14\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullDoubleAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((double?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineDecimalNullableAppendsNumberAndNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.WriteLine((decimal?)9.99m);
+
+ Assert.Equal("9.99\n", writer.ToStringAndReset());
+ }
+
+ [Fact]
+ public void WriteLineNullDecimalAppendsOnlyNewLine()
+ {
+ var writer = new SourceTextWriter();
+ writer.Write("start");
+ writer.WriteLine((decimal?)null);
+
+ Assert.Equal("start\n", writer.ToStringAndReset());
+ }
}
diff --git a/version.json b/version.json
index 6825ef1..4768dfd 100644
--- a/version.json
+++ b/version.json
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json",
- "version": "2.0",
+ "version": "2.1",
"pathFilters": ["src"],
"publicReleaseRefSpec": [
"^refs/tags/v\\d+\\.\\d+"