about summary refs log tree commit diff stats
path: root/edit/008-sandbox-trace.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-09-05 12:42:04 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-09-05 12:43:25 -0700
commit5f0da59d328f46ef77f7eba90e9782b43af84394 (patch)
treed03e09204d07df2ff1ab31778756ef59140c5c3a /edit/008-sandbox-trace.mu
parent4a027415c22ff5291c8731c2ecf923fbe3ee4b72 (diff)
downloadmu-5f0da59d328f46ef77f7eba90e9782b43af84394.tar.gz
2160
Diffstat (limited to 'edit/008-sandbox-trace.mu')
-rw-r--r--edit/008-sandbox-trace.mu194
1 files changed, 0 insertions, 194 deletions
diff --git a/edit/008-sandbox-trace.mu b/edit/008-sandbox-trace.mu
deleted file mode 100644
index 7b5dd4e2..00000000
--- a/edit/008-sandbox-trace.mu
+++ /dev/null
@@ -1,194 +0,0 @@
-## clicking on the code typed into a sandbox toggles its trace
-
-scenario sandbox-click-on-code-toggles-app-trace [
-  $close-trace  # trace too long
-  assume-screen 40/width, 10/height
-  # basic recipe
-  1:address:array:character <- new [ 
-recipe foo [
-  stash [abc]
-]]
-  # run it
-  2:address:array:character <- new [foo]
-  assume-console [
-    press F4
-  ]
-  3:address:programming-environment-data <- new-programming-environment screen:address, 1:address:array:character, 2:address:array:character
-  event-loop screen:address, console:address, 3:address:programming-environment-data
-  screen-should-contain [
-    .                     run (F4)           .
-    .                    ┊                   .
-    .recipe foo [        ┊━━━━━━━━━━━━━━━━━━━.
-    .  stash [abc]       ┊                  x.
-    .]                   ┊foo                .
-    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━.
-    .                    ┊                   .
-  ]
-  # click on the 'foo' line in the sandbox
-  assume-console [
-    left-click 4, 21
-  ]
-  run [
-    event-loop screen:address, console:address, 3:address:programming-environment-data
-    print-character screen:address, 9251/␣/cursor
-  ]
-  # trace now printed and cursor shouldn't have budged
-  screen-should-contain [
-    .                     run (F4)           .
-    .␣                   ┊                   .
-    .recipe foo [        ┊━━━━━━━━━━━━━━━━━━━.
-    .  stash [abc]       ┊                  x.
-    .]                   ┊foo                .
-    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊abc                .
-    .                    ┊━━━━━━━━━━━━━━━━━━━.
-    .                    ┊                   .
-  ]
-  screen-should-contain-in-color 245/grey, [
-    .                                        .
-    .                    ┊                   .
-    .                    ┊━━━━━━━━━━━━━━━━━━━.
-    .                    ┊                  x.
-    .                    ┊                   .
-    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊abc                .
-    .                    ┊━━━━━━━━━━━━━━━━━━━.
-    .                    ┊                   .
-  ]
-  # click again on the same region
-  assume-console [
-    left-click 4, 25
-  ]
-  run [
-    event-loop screen:address, console:address, 3:address:programming-environment-data
-    print-character screen:address, 9251/␣/cursor
-  ]
-  # trace hidden again
-  screen-should-contain [
-    .                     run (F4)           .
-    .␣                   ┊                   .
-    .recipe foo [        ┊━━━━━━━━━━━━━━━━━━━.
-    .  stash [abc]       ┊                  x.
-    .]                   ┊foo                .
-    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━.
-    .                    ┊                   .
-  ]
-]
-
-scenario sandbox-shows-app-trace-and-result [
-  $close-trace  # trace too long
-  assume-screen 40/width, 10/height
-  # basic recipe
-  1:address:array:character <- new [ 
-recipe foo [
-  stash [abc]
-  add 2, 2
-]]
-  # run it
-  2:address:array:character <- new [foo]
-  assume-console [
-    press F4
-  ]
-  3:address:programming-environment-data <- new-programming-environment screen:address, 1:address:array:character, 2:address:array:character
-  event-loop screen:address, console:address, 3:address:programming-environment-data
-  screen-should-contain [
-    .                     run (F4)           .
-    .                    ┊                   .
-    .recipe foo [        ┊━━━━━━━━━━━━━━━━━━━.
-    .  stash [abc]       ┊                  x.
-    .  add 2, 2          ┊foo                .
-    .]                   ┊4                  .
-    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━.
-    .                    ┊                   .
-  ]
-  # click on the 'foo' line in the sandbox
-  assume-console [
-    left-click 4, 21
-  ]
-  run [
-    event-loop screen:address, console:address, 3:address:programming-environment-data
-  ]
-  # trace now printed
-  screen-should-contain [
-    .                     run (F4)           .
-    .                    ┊                   .
-    .recipe foo [        ┊━━━━━━━━━━━━━━━━━━━.
-    .  stash [abc]       ┊                  x.
-    .  add 2, 2          ┊foo                .
-    .]                   ┊abc                .
-    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                  .
-    .                    ┊━━━━━━━━━━━━━━━━━━━.
-    .                    ┊                   .
-  ]
-]
-
-# clicks on sandbox code toggle its display-trace? flag
-after <global-touch> [
-  # right side of screen? check if it's inside the code of any sandbox
-  {
-    sandbox-left-margin:number <- get *current-sandbox, left:offset
-    click-column:number <- get *t, column:offset
-    on-sandbox-side?:boolean <- greater-or-equal click-column, sandbox-left-margin
-    break-unless on-sandbox-side?
-    first-sandbox:address:sandbox-data <- get *env, sandbox:offset
-    break-unless first-sandbox
-    first-sandbox-begins:number <- get *first-sandbox, starting-row-on-screen:offset
-    click-row:number <- get *t, row:offset
-    below-sandbox-editor?:boolean <- greater-or-equal click-row, first-sandbox-begins
-    break-unless below-sandbox-editor?
-    # identify the sandbox whose code is being clicked on
-    sandbox:address:sandbox-data <- find-click-in-sandbox-code env, click-row
-    break-unless sandbox
-    # toggle its display-trace? property
-    x:address:boolean <- get-address *sandbox, display-trace?:offset
-    *x <- not *x
-    hide-screen screen
-    screen <- render-sandbox-side screen, env, 1/clear
-    screen <- update-cursor screen, recipes, current-sandbox, *sandbox-in-focus?
-    # no change in cursor
-    show-screen screen
-    loop +next-event:label
-  }
-]
-
-recipe find-click-in-sandbox-code [
-  local-scope
-  env:address:programming-environment-data <- next-ingredient
-  click-row:number <- next-ingredient
-  # assert click-row >= sandbox.starting-row-on-screen
-  sandbox:address:sandbox-data <- get *env, sandbox:offset
-  start:number <- get *sandbox, starting-row-on-screen:offset
-  clicked-on-sandboxes?:boolean <- greater-or-equal click-row, start
-  assert clicked-on-sandboxes?, [extract-sandbox called on click to sandbox editor]
-  # while click-row < sandbox.next-sandbox.starting-row-on-screen
-  {
-    next-sandbox:address:sandbox-data <- get *sandbox, next-sandbox:offset
-    break-unless next-sandbox
-    next-start:number <- get *next-sandbox, starting-row-on-screen:offset
-    found?:boolean <- lesser-than click-row, next-start
-    break-if found?
-    sandbox <- copy next-sandbox
-    loop
-  }
-  # return sandbox if click is in its code region
-  code-ending-row:number <- get *sandbox, code-ending-row-on-screen:offset
-  click-above-response?:boolean <- lesser-or-equal click-row, code-ending-row
-  start:number <- get *sandbox, starting-row-on-screen:offset
-  click-below-menu?:boolean <- greater-than click-row, start
-  click-on-sandbox-code?:boolean <- and click-above-response?, click-below-menu?
-  {
-    break-if click-on-sandbox-code?
-    reply 0/no-click-in-sandbox-output
-  }
-  reply sandbox
-]
-
-# when rendering a sandbox, dump its trace before response/warning if display-trace? property is set
-after <render-sandbox-results> [
-  {
-    display-trace?:boolean <- get *sandbox, display-trace?:offset
-    break-unless display-trace?
-    sandbox-trace:address:array:character <- get *sandbox, trace:offset
-    break-unless sandbox-trace  # nothing to print; move on
-    row, screen <- render-string, screen, sandbox-trace, left, right, 245/grey, row
-    row <- subtract row, 1  # trim the trailing newline that's always present
-  }
-]