-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path2dos
74 lines (67 loc) · 2.76 KB
/
2dos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
see also TODOs in code
community
upload results to server/community results page
adapt API to allow import to UI
define & document API
improve compiler scheme image
clientside code-based import & export
what is "common" for code and ui
version check
serverside exchange method
clientside browse and import
clientside share
show examples
small
if eval() does thrown an error, colour the input field red to show that to the user
show results of expressions beneath input field "=..." (on hover)
make invoke-funcCall-drag better by adding a symbol to the cursor (as it is dragged)
add switch for "add before or after" selected element
indicateIfInsideAnySelectedCommandsScope on hover
function name (& branch cond) input field has no drag event, but selections via mouse is disabled
big
drag constant inside expression
iconic code view
rotate/move/loop with 0 is not visible
edit Move style (colour, breadth)
Collision-Free positioning
check same state of commands, then shift y ?
add svg-native circle/arc
constraint solving
snapping/line end handles
bigger click radius, especially for Move
variables can reference variables (on global scope)
handling endless recursion by checking line-length or out of bounds
How can the program flow be visualised (stepping through)?
3D: z-axis (depth) is passing time (rotate graphic to show time)
timeslider: see the turtle move
Map a parameter to space (show multiple "shadow instances" of it)
selection z-order-handling (ALT selects below)
this is actually hard, because event propagation will not work
I will need to manually compute which elements a click hit
http://mozilla.6506.n7.nabble.com/Event-Bubbling-through-Layers-td247852.html
allow functions as arguments
ctrl+d = duplicate selected command -> create proxy, instead of copy (ctrl+c) (can be emulated by funcCall)
refactor "set scope" first
think about how export should handle proxies
undo
store session in local browser cache
allow much more dragging between elements
Logo output
automatic tests
asynchronous (endless) recursion progression
make recursion depth depend on run execution time
store which expression requires which variables, so I only eval those
drag in input field with expressions
similar to "a" -> create parameters, new command to encapsulate selection into new function
selected function block is more distinctly highlighted
show individual parts in context (do not switch between pictures) - zooming in on detail
scope highlighting: grey out rest, not the other way around
new commands
mirror
close path
edit fill
goto, go home, go to point in past
go back X states in time
idea: a pen stack: function calls may use the pen stack to "go home" after each call
Beziers
resize, rotate, shear