about summary refs log tree commit diff stats
path: root/apps/tile/environment.mu
diff options
context:
space:
mode:
Diffstat (limited to 'apps/tile/environment.mu')
-rw-r--r--apps/tile/environment.mu20
1 files changed, 20 insertions, 0 deletions
diff --git a/apps/tile/environment.mu b/apps/tile/environment.mu
index 3103dd6e..1795b32b 100644
--- a/apps/tile/environment.mu
+++ b/apps/tile/environment.mu
@@ -267,6 +267,26 @@ fn process-function-edit _self: (addr environment), _function: (addr function),
     cursor-to-end cursor-word
     return
   }
+  # bounce to another function
+  compare key, 7  # ctrl-g
+  $process-function-edit:goto-function: {
+    break-if-!=
+    # initialize dialog to name function to jump to
+    var partial-function-name-ah/eax: (addr handle word) <- get self, partial-function-name
+    allocate partial-function-name-ah
+    var partial-function-name/eax: (addr word) <- lookup *partial-function-name-ah
+    initialize-word partial-function-name
+    return
+  }
+  # bounce to sandbox
+  compare key, 9  # tab
+  $process-function-edit:goto-sandbox: {
+    break-if-!=
+    var function-ah/eax: (addr handle function) <- get self, cursor-function
+    clear-object function-ah
+    return
+  }
+  # editing the current function
   compare key, 0x7f  # del (backspace on Macs)
   $process-function-edit:backspace: {
     break-if-!=