about summary refs log tree commit diff stats
path: root/020run.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2017-06-10 23:56:37 -0700
committerKartik K. Agaram <vc@akkartik.com>2017-06-10 23:56:37 -0700
commitdf0f36fb40fcd5d1a334cb0889bcb7f78023e638 (patch)
tree0cf59c92fc7801542fc36e1c67073bec7c1b7198 /020run.cc
parent909adb27f9df2ba58e703562e3cf8f948fc58b56 (diff)
downloadmu-df0f36fb40fcd5d1a334cb0889bcb7f78023e638.tar.gz
3906
Yet another attempt at decomposing incremental edits in some clean way.
The new idea now is that I need to only modify the screen using a
restricted vocabulary of actions:
  render-all
  render-recipe-side
  render-sandbox-side
  render-recipe-errors
  render-line-from-cursor
  render-line-from-start
  erase-line-from-cursor
  render-character-at-cursor
  erase-character-at-cursor

However, decomposing insert-at-cursor is challenging; how to manipulate
cursor-row and cursor-column without also pretending to print to screen?
Do I need to decompose `editor` into multiple containers so that I can
keep cursor-row and cursor-column with screen modifications? Here's what
`editor` looks like after all layers:

  container editor [
    data:&:duplex-list:char
    top-of-screen:&:duplex-list:char
    bottom-of-screen:&:duplex-list:char
    before-cursor:&:duplex-list:char
    left:num
    right:num
    bottom:num
    cursor-row:num
    cursor-column:num
    indent?:bool
    undo:&:list:&:operation
    redo:&:list:&:operation
  ]

It's not obvious that there's a clean way to split all these fields.
Diffstat (limited to '020run.cc')
-rw-r--r--020run.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/020run.cc b/020run.cc
index 9b20a61e..ed364b37 100644
--- a/020run.cc
+++ b/020run.cc
@@ -196,6 +196,7 @@ if (argc > 1) {
   if (Run_tests) Recipe.erase(get(Recipe_ordinal, "main"));
 }
 transform_all();
+//? cerr << to_original_string(get(Type_ordinal, "editor")) << '\n';
 //? cerr << to_original_string(get(Recipe, get(Recipe_ordinal, "event-loop"))) << '\n';
 //? DUMP("");
 //? exit(0);