public CSharpCodeWritingScope(CodeWriter writer, int tabSize, bool autoSpace) { _writer = writer; _autoSpace = true; _tabSize = tabSize; _startIndent = -1; // Set in WriteStartScope OnClose = () => { }; WriteStartScope(); }
public void CodeWriter_TracksPosition_WithWrite() { // Arrange var writer = new CodeWriter(); // Act writer.Write("1234"); // Assert var location = writer.GetCurrentSourceLocation(); var expected = new SourceLocation(absoluteIndex: 4, lineIndex: 0, characterIndex: 4); Assert.Equal(expected, location); }
public void CodeWriter_TracksPosition_WithIndent() { // Arrange var writer = new CodeWriter(); // Act writer.WriteLine(); writer.Indent(size: 3); // Assert var location = writer.GetCurrentSourceLocation(); var expected = new SourceLocation(absoluteIndex: 3 + WriterNewLineLength, lineIndex: 1, characterIndex: 3); Assert.Equal(expected, location); }
public void CodeWriter_TracksPosition_WithWriteLine_WithNewLineInContent(string newLine) { // Arrange var writer = new CodeWriter(); // Act writer.WriteLine("1234" + newLine + "12"); // Assert var location = writer.GetCurrentSourceLocation(); var expected = new SourceLocation( absoluteIndex: 6 + newLine.Length + WriterNewLineLength, lineIndex: 2, characterIndex: 0); Assert.Equal(expected, location); }
// TODO: Make indents (tabs) environment specific public CSharpCodeWritingScope(CodeWriter writer, bool autoSpace) : this(writer, 4, autoSpace) { }
public CSharpCodeWritingScope(CodeWriter writer, int tabSize) : this(writer, tabSize, true) { }
public CSharpCodeWritingScope(CodeWriter writer) : this(writer, true) { }
public void CodeWriter_TracksPosition_WithNewline_SplitAcrossWrites_AtBeginning() { // Arrange var writer = new CodeWriter(); // Act writer.Write("\r"); var location1 = writer.GetCurrentSourceLocation(); writer.Write("\n"); var location2 = writer.GetCurrentSourceLocation(); // Assert var expected1 = new SourceLocation(absoluteIndex: 1, lineIndex: 1, characterIndex: 0); Assert.Equal(expected1, location1); var expected2 = new SourceLocation(absoluteIndex: 2, lineIndex: 1, characterIndex: 0); Assert.Equal(expected2, location2); }
public void CodeWriter_TracksPosition_WithWrite_WithMixedNewlineInContent() { // Arrange var writer = new CodeWriter(); // Act writer.Write("1234\r123\r\n12\n1"); // Assert var location = writer.GetCurrentSourceLocation(); var expected = new SourceLocation( absoluteIndex: 14, lineIndex: 3, characterIndex: 1); Assert.Equal(expected, location); }
public void CodeWriter_TracksPosition_WithWrite_WithNewlineInContent_RepeatedN() { // Arrange var writer = new CodeWriter(); // Act writer.Write("1234\n\n123"); // Assert var location = writer.GetCurrentSourceLocation(); var expected = new SourceLocation( absoluteIndex: 9, lineIndex: 2, characterIndex: 3); Assert.Equal(expected, location); }