public override string ToCSharpCode(int padding = 0)
{
string paddingStr = String.Concat (Enumerable.Repeat (" ", padding));
List<string> lines = new List<string> ();
lines.AddRange (Packages.GetUsingStatements (Packages.GetPackage (name)));
if (Packages.IsInPackage (name)) {
lines.Add (paddingStr + "namespace " + Packages.GetPackage (name));
lines.Add (paddingStr + "{");
paddingStr += " ";
padding += 4;
}
lines.AddRange (Comments.CSharpComments (commentsKey, paddingStr));
lines.Add (paddingStr + Publicity.ToCode ("", " ") + Virtuality.ToCode ("", " ") + "enum " + name);
lines.Add (paddingStr + "{");
foreach (string literal in values) {
lines.AddRange (Comments.CSharpComments (Comments.Key (name, literal), paddingStr + " "));
lines.Add (paddingStr + " " + literal + ",");
}
lines.Add (paddingStr + "}");
if (Packages.IsInPackage (name)) {
padding -= 4;
paddingStr = paddingStr.Substring (4);
lines.Add (paddingStr + "}");
}
return string.Join ("\n", lines);
}