Browse Source

Small cleanup to the TextGenerator class.

pull/12/merge
triton 12 years ago
parent
commit
411aeeba8c
  1. 36
      src/Generator/Utils/TextGenerator.cs

36
src/Generator/Utils/TextGenerator.cs

@ -7,19 +7,17 @@ namespace CppSharp
{ {
public class TextGenerator public class TextGenerator
{ {
private const uint DefaultIndent = 4; const uint DefaultIndent = 4;
private const uint MaxIndent = 80;
public StringBuilder stringBuilder;
private bool isStartOfLine;
private bool needsNewLine;
public StringBuilder StringBuilder;
protected bool IsStartOfLine;
protected bool NeedsNewLine;
protected readonly Stack<uint> CurrentIndent; protected readonly Stack<uint> CurrentIndent;
public TextGenerator() public TextGenerator()
{ {
stringBuilder = new StringBuilder(); StringBuilder = new StringBuilder();
isStartOfLine = false; IsStartOfLine = false;
CurrentIndent = new Stack<uint>(); CurrentIndent = new Stack<uint>();
} }
@ -33,13 +31,13 @@ namespace CppSharp
foreach(var line in msg.SplitAndKeep(Environment.NewLine)) foreach(var line in msg.SplitAndKeep(Environment.NewLine))
{ {
if (isStartOfLine && !string.IsNullOrWhiteSpace(line)) if (IsStartOfLine && !string.IsNullOrWhiteSpace(line))
stringBuilder.Append(new string(' ', (int) CurrentIndent.Sum(u => u))); StringBuilder.Append(new string(' ', (int) CurrentIndent.Sum(u => u)));
if (line.Length > 0) if (line.Length > 0)
isStartOfLine = line.EndsWith(Environment.NewLine); IsStartOfLine = line.EndsWith(Environment.NewLine);
stringBuilder.Append(line); StringBuilder.Append(line);
} }
} }
@ -58,26 +56,26 @@ namespace CppSharp
public void NewLine() public void NewLine()
{ {
stringBuilder.AppendLine(string.Empty); StringBuilder.AppendLine(string.Empty);
isStartOfLine = true; IsStartOfLine = true;
} }
public void NewLineIfNeeded() public void NewLineIfNeeded()
{ {
if (!needsNewLine) return; if (!NeedsNewLine) return;
NewLine(); NewLine();
needsNewLine = false; NeedsNewLine = false;
} }
public void NeedNewLine() public void NeedNewLine()
{ {
needsNewLine = true; NeedsNewLine = true;
} }
public void ResetNewLine() public void ResetNewLine()
{ {
needsNewLine = false; NeedsNewLine = false;
} }
public void PushIndent(uint indent = DefaultIndent) public void PushIndent(uint indent = DefaultIndent)
@ -104,7 +102,7 @@ namespace CppSharp
public override string ToString() public override string ToString()
{ {
return stringBuilder.ToString(); return StringBuilder.ToString();
} }
public static implicit operator string(TextGenerator tg) public static implicit operator string(TextGenerator tg)

Loading…
Cancel
Save