예제 #1
0
 public static string ToString(LuaTable table, LuaComment headComment = null)
 {
     using (var stringWriter = new StringWriter()) {
         Write(table, stringWriter, headComment);
         return stringWriter.ToString();
     }
 }
예제 #2
0
 public void Export(IEnumerable<MoaiType> types, DirectoryInfo outputDirectory)
 {
     LuaTable typeListTable = CreateTypeListTable(types);
     var targetFileInfo = outputDirectory.GetFileInfo("moai.lua");
     var commentLines = new[] {
         "Documentation of the Moai SDK (http://getmoai.com/)",
         string.Format(CultureInfo.InvariantCulture, "Generated on {0:d} by {1}", DateTime.Now, CurrentUtility.Signature),
         CurrentUtility.MoaiUtilsHint
     };
     var headComment = new LuaComment(commentLines, blankLineAfter: true);
     LuaTableWriter.Write(typeListTable, targetFileInfo, headComment);
 }
예제 #3
0
        public static void Write(LuaTable table, TextWriter textWriter, LuaComment headComment = null)
        {
            if (table == null) throw new ArgumentNullException("table");
            if (textWriter == null) throw new ArgumentNullException("textWriter");

            using (var indentedTextWriter = new IndentedTextWriter(textWriter, "    ")) {
                if (headComment != null) {
                    Write(headComment, indentedTextWriter);
                }
                indentedTextWriter.Write("return ");
                Write(table, indentedTextWriter);
            }
        }
예제 #4
0
 public static void Write(LuaTable table, FileInfo fileInfo, LuaComment headComment = null)
 {
     using (var file = fileInfo.CreateText()) {
         Write(table, file, headComment);
     }
 }
예제 #5
0
 private static void Write(LuaComment comment, IndentedTextWriter indentedTextWriter)
 {
     if (comment.BlankLineBefore) {
         indentedTextWriter.WriteLine();
     }
     foreach (var line in comment.Text.SplitIntoLines()) {
         indentedTextWriter.WriteLine("-- {0}", line);
     }
     if (comment.BlankLineAfter) {
         indentedTextWriter.WriteLine();
     }
 }