about summary refs log tree commit diff stats
path: root/file.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-05-23 08:13:58 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-05-23 08:17:40 -0700
commit37f1313b16971200f56552dbbf8c2b0b2b65417e (patch)
treee16e4ed0862a03d775a71cf4dea6d04864421d32 /file.lua
parent46d4c4de10b31a82664364364c911e1d8a08c0e5 (diff)
downloadlines.love-37f1313b16971200f56552dbbf8c2b0b2b65417e.tar.gz
first successful pagedown test, first bug found by test
I also really need to rethink how people debug my programs. My approach
of inserting and deleting print() takes a lot of commitment. I need my
old trace-based whitebox testing idea. However, in my past projects I
never did figure out a good framework for tweaking how verbose a trace
to emit.

Perhaps that's too many knobs. Perhaps we just need a way to run a
single test with the most verbose trace possible. Then it's just a
matter of having the trace tell a coherent story? But even if the trace
stays out of program output in that situation, it's still in the
programmer's face in the _code_. Ugh.

Current plan: ship program with maximum tests and zero commented-out
prints. If you want to debug, insert prints. This is better than
previous, text-mode, projects just by virtue of the stdout channel being
dedicated to debug stuff.
Diffstat (limited to 'file.lua')
-rw-r--r--file.lua12
1 files changed, 9 insertions, 3 deletions
diff --git a/file.lua b/file.lua
index 0dcc369..a60fe69 100644
--- a/file.lua
+++ b/file.lua
@@ -107,13 +107,18 @@ end
 function load_array(a)
   local result = {}
   local next_line = ipairs(a)
-  local i,line = 0, ''
+  local i,line,drawing = 0, ''
   while true do
     i,line = next_line(a, i)
     if i == nil then break end
+--?     print(line)
     if line == '```lines' then  -- inflexible with whitespace since these files are always autogenerated
-      table.insert(result, load_drawing_from_array(next_line, a, i))
+--?       print('inserting drawing')
+      i, drawing = load_drawing_from_array(next_line, a, i)
+--?       print('i now', i)
+      table.insert(result, drawing)
     else
+--?       print('inserting text')
       table.insert(result, {mode='text', data=line})
     end
   end
@@ -129,6 +134,7 @@ function load_drawing_from_array(iter, a, i)
   while true do
     i, line = iter(a, i)
     assert(i)
+--?     print(i)
     if line == '```' then break end
     local shape = json.decode(line)
     if shape.mode == 'freehand' then
@@ -156,5 +162,5 @@ function load_drawing_from_array(iter, a, i)
     end
     table.insert(drawing.shapes, shape)
   end
-  return drawing
+  return i, drawing
 end