Mercurial > repos > tabletprog
annotate src/editor.tp @ 118:0a66fe3a368a
Allow selection and navigation of assignment nodes.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 15 Apr 2013 21:55:26 -0700 |
parents | f4e464a17579 |
children | 77f7cd65e121 |
rev | line source |
---|---|
11 | 1 #{ |
2 //mquery functions | |
3 q <- foreign: :query {} | |
4 qall <- foreign: :query {} | |
5 each <- foreign: :iterable fun {} | |
6 addClass <- foreign: :node className {} | |
7 removeClass <- foreign: :node className {} | |
110
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
8 hasClass <- foreign: :node className {} |
12
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
9 get <- foreign: :url onSuccess onFail onOther {} |
110
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
10 getEl <- foreign: :from idx {} |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
11 setEl <- foreign: :to idx val {} |
23
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
12 newEl <- foreign: :tagname props {} |
11 | 13 |
14
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
14 //TP Parser |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
15 parser <- foreign: #{ |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
16 parse <- foreign: :str {} |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
17 } |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
18 isLambda <- foreign: :astnode {} |
14
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
19 |
11 | 20 //js builtins |
21 console <- foreign: #{ | |
23
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
22 log <- foreign: :val {} |
11 | 23 } |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
24 window <- foreign: #{} |
23
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
25 Object <- foreign: #{ |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
26 keys <- foreign: :object {} |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
27 } |
11 | 28 |
17
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
29 //kernel definitions |
104 | 30 //import: kernel |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
31 |
108
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
32 filter <- :arr pred { |
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
33 output <- arr slice: 0 0 |
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
34 each: arr :idx el { |
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
35 if: (pred: el) { |
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
36 output push: el |
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
37 } else: {} |
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
38 } |
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
39 output |
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
40 } |
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
41 |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
42 //editor code |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
43 selection <- #{ |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
44 valid? <- false |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
45 } |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
46 |
117
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
47 setSelection:withInNode <- :astnode :innode { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
48 fakeEvent <- #{ |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
49 stopPropagation <- :Blah { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
50 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
51 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
52 selection <- #{ |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
53 valid? <- true |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
54 in <- { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
55 (innode domNode) onclick: fakeEvent |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
56 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
57 out <- { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
58 fakeEvent <- #{ |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
59 stopPropagation <- :Blah { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
60 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
61 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
62 ((astnode up) domNode) onclick: fakeEvent |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
63 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
64 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
65 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
66 |
118
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
67 setSelection <- :astnode { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
68 fakeEvent <- #{ |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
69 stopPropagation <- :Blah { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
70 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
71 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
72 selection <- #{ |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
73 valid? <- true |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
74 in <- { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
75 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
76 out <- { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
77 fakeEvent <- #{ |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
78 stopPropagation <- :Blah { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
79 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
80 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
81 ((astnode up) domNode) onclick: fakeEvent |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
82 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
83 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
84 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
85 |
17
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
86 editFile <- :path { |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
87 get: path :request { |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
88 addClass: (q: "body") "editorMode" |
21
6c8ae6b47ab5
Small improvements to property support and elimination of setP and getP functions as they are no longer needed
Mike Pavone <pavone@retrodev.com>
parents:
18
diff
changeset
|
89 src <- request responseText |
17
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
90 ast <- parser parse: src |
23
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
91 ast populateSymbols: (foreign: null) |
17
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
92 ast toHTML: (q: "#src") |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
93 } |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
94 } |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
95 |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
96 selectNode <- :node { |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
97 each: (qall: ".selected") :idx el { |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
98 removeClass: el "selected" |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
99 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
100 addClass: node "selected" |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
101 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
102 |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
103 selectQuery <- :selector { |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
104 selectQuery: selector in: (foreign: undefined) |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
105 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
106 |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
107 selectQuery:in <- :selector :context { |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
108 each: (qall: ".selected") :idx el { |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
109 removeClass: el "selected" |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
110 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
111 each: (qall: selector context) :idx el { |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
112 addClass: el "selected" |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
113 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
114 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
115 |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
116 selectParent <- :node { |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
117 each: (qall: ".selectParent") :idx el { |
109
a647cdad620b
Small fix to selecting a funcall method/function name
Mike Pavone <pavone@retrodev.com>
parents:
108
diff
changeset
|
118 removeClass: el "selectParent" |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
119 } |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
120 addClass: node "selectParent" |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
121 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
122 |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
123 popInscope:onClick <- :syms :handler { |
23
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
124 inscope <- q: "#inscope" |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
125 inscope innerHTML!: "" |
24
fe3533494ce9
Display symbols order first by depth. Eliminate extraneous setter symbols
Mike Pavone <pavone@retrodev.com>
parents:
23
diff
changeset
|
126 each: syms :idx key { |
23
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
127 inscope appendChild: (newEl: "li" #{ |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
128 textContent <- key |
107
152b6cfb98b6
Click-to-select no longer selects the whole lambda when it shouldn't and no longer replaces the selected code with a single symbol.
Mike Pavone <pavone@retrodev.com>
parents:
105
diff
changeset
|
129 onclick <- :Event { handler: key } |
23
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
130 }) |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
131 } |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
132 } |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
133 |
29
18cec540238a
Prevent event bubbling so lambda click handler doesn't get called when clicking on an element inside it
Mike Pavone <pavone@retrodev.com>
parents:
28
diff
changeset
|
134 symbolClick <- :domnode astnode event { |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
135 selectNode: domnode |
105
35006a6e1c47
Fixed more editor coderot and improved syntax/selection coloring a bit.
Mike Pavone <pavone@retrodev.com>
parents:
104
diff
changeset
|
136 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key { |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
137 domnode textContent!: key |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
138 astnode name!: key |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
139 } |
118
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
140 setSelection: astnode |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
141 event stopPropagation: (foreign: undefined) |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
142 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
143 |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
144 assignClick <- :domnode astnode event { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
145 selectParent: domnode |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
146 selectQuery: ".selectParent > .varname" in: domnode |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
147 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
148 (domnode firstChild) textContent!: key |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
149 (astnode symbol) name!: key |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
150 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
151 setSelection: astnode withInNode: (astnode expression) |
107
152b6cfb98b6
Click-to-select no longer selects the whole lambda when it shouldn't and no longer replaces the selected code with a single symbol.
Mike Pavone <pavone@retrodev.com>
parents:
105
diff
changeset
|
152 event stopPropagation: (foreign: undefined) |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
153 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
154 |
116
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
155 opClick <- :domnode astnode event { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
156 selectParent: domnode |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
157 selectQuery: ".selectParent > .opname" in: domnode |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
158 showOps |
117
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
159 setSelection: astnode withInNode: (astnode left) |
116
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
160 event stopPropagation: (foreign: undefined) |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
161 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
162 |
29
18cec540238a
Prevent event bubbling so lambda click handler doesn't get called when clicking on an element inside it
Mike Pavone <pavone@retrodev.com>
parents:
28
diff
changeset
|
163 funClick <- :domnode astnode event { |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
164 selectParent: domnode |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
165 selectQuery: ".selectParent > .funpart" in: domnode |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
166 symtable <- astnode symbols |
108
5099c1a96e3f
Mostly fix clicking on the function name in a funcall expression
Mike Pavone <pavone@retrodev.com>
parents:
107
diff
changeset
|
167 syms <- filter: (symtable allSymbols: (foreign: undefined)) :sym { |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
168 isLambda: ((symtable find: sym) def) |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
169 } |
117
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
170 inner <- if: (astnode receiver) != (foreign: null) { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
171 astnode receiver |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
172 } else: { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
173 (astnode args) getEl: 0 |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
174 } |
117
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
175 setSelection: astnode withInNode: inner |
110
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
176 popInscope: syms onClick: :key { |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
177 astnode name!: key |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
178 parts <- key split: ":" |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
179 nodes <- [] |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
180 each: (domnode children) :idx val{ |
110
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
181 nodes push: val |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
182 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
183 partIdx <- 0 |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
184 nodeIdx <- 0 |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
185 lastWasNamePart <- true |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
186 while: { partIdx < (parts length) || nodeIdx < (nodes length) } do: { |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
187 if: nodeIdx < (nodes length) { |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
188 node <-getEl: nodes nodeIdx |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
189 nodeIdx <- nodeIdx + 1 |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
190 if: (hasClass: node "funpart") { |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
191 if: partIdx < (parts length) { |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
192 postfix <- if: partIdx = 0 && nodeIdx = 2 && (parts length) = 1 && (nodes length) = 2 { "" } else: { ":" } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
193 t <- (getEl: parts partIdx) |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
194 node textContent!: (getEl: parts partIdx) . postfix |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
195 partIdx <- partIdx + 1 |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
196 } else: { |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
197 domnode removeChild: node |
110
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
198 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
199 lastWasNamePart <- true |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
200 } else: { |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
201 if: (not: lastWasNamePart) && partIdx < (parts length) && nodeIdx > 0 { |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
202 domnode insertBefore: (newEl: "span" #{ |
110
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
203 className <- "funpart selected" |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
204 textContent <- (getEl: parts partIdx) . ":" |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
205 }) node |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
206 partIdx <- partIdx + 1 |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
207 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
208 lastWasNamePart <- false |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
209 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
210 } else: { |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
211 console log: "part: " . (getEl: parts partIdx) |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
212 domnode appendChild: (newEl: "span" #{ |
110
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
213 className <- "funpart selected" |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
214 textContent <- (getEl: parts partIdx) . ":" |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
215 }) |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
216 partIdx <- partIdx + 1 |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
217 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
218 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
219 } |
107
152b6cfb98b6
Click-to-select no longer selects the whole lambda when it shouldn't and no longer replaces the selected code with a single symbol.
Mike Pavone <pavone@retrodev.com>
parents:
105
diff
changeset
|
220 event stopPropagation: (foreign: undefined) |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
221 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
222 |
29
18cec540238a
Prevent event bubbling so lambda click handler doesn't get called when clicking on an element inside it
Mike Pavone <pavone@retrodev.com>
parents:
28
diff
changeset
|
223 lambdaClick <- :domnode astnode event { |
18cec540238a
Prevent event bubbling so lambda click handler doesn't get called when clicking on an element inside it
Mike Pavone <pavone@retrodev.com>
parents:
28
diff
changeset
|
224 symbolClick: domnode astnode event |
28 | 225 } |
226 | |
116
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
227 visible <- "showops" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
228 |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
229 showOps <- { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
230 each: (qall: ".controls") :idx el { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
231 removeClass: el visible |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
232 addClass: el "showops" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
233 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
234 visible <- "showops" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
235 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
236 |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
237 showLit <- { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
238 each: (qall: ".controls") :idx el { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
239 removeClass: el visible |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
240 addClass: el "showlit" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
241 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
242 visible <- "showlit" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
243 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
244 |
11 | 245 main <- { |
30
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
246 get: "/src/" :data { |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
247 fakeEl <- newEl: "div" #{ |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
248 innerHTML <- data response |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
249 } |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
250 each: (qall: "a" fakeEl) :idx el { |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
251 if: ((el textContent) = "../") {} else: { |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
252 nel <- newEl: "a" #{ |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
253 href <- "/edit/src/" + (el textContent) |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
254 textContent <- el textContent |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
255 } |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
256 nel onclick!: :event { |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
257 link <- foreign: this |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
258 path <- link href |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
259 path <- path substr: (path indexOf: "/edit/") + 5 |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
260 editFile: path |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
261 foreign: false |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
262 } |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
263 li <- newEl: "li" |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
264 li appendChild: nel |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
265 (q: "#browser ul") appendChild: li |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
266 } |
12
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
267 } |
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
268 } |
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
269 |
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
270 //bind handlers for editor buttons |
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
271 each: (qall: ".controls li") :idx el { |
21
6c8ae6b47ab5
Small improvements to property support and elimination of setP and getP functions as they are no longer needed
Mike Pavone <pavone@retrodev.com>
parents:
18
diff
changeset
|
272 el onclick!: :event { |
11 | 273 srcel <- (q: "#src") |
21
6c8ae6b47ab5
Small improvements to property support and elimination of setP and getP functions as they are no longer needed
Mike Pavone <pavone@retrodev.com>
parents:
18
diff
changeset
|
274 srcel textContent!: (srcel textContent) + (el textContent) |
11 | 275 } |
276 } | |
21
6c8ae6b47ab5
Small improvements to property support and elimination of setP and getP functions as they are no longer needed
Mike Pavone <pavone@retrodev.com>
parents:
18
diff
changeset
|
277 (q: "#ops_button") onclick!: :event { |
116
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
278 showOps |
111
b2a3f202d485
Fleshed out the UI a little. Added a "literal" button that replaces the operator panel with a literal panel. Added the navigation buttons, but they're not functional yet.
Mike Pavone <pavone@retrodev.com>
parents:
110
diff
changeset
|
279 } |
b2a3f202d485
Fleshed out the UI a little. Added a "literal" button that replaces the operator panel with a literal panel. Added the navigation buttons, but they're not functional yet.
Mike Pavone <pavone@retrodev.com>
parents:
110
diff
changeset
|
280 (q: "#lit_button") onclick!: :event { |
116
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
281 showLit |
11 | 282 } |
283 | |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
284 (q: "#in") onclick!: :event { |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
285 console log: "inwards" |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
286 if: (selection valid?) { |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
287 selection in |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
288 } |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
289 } |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
290 |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
291 (q: "#out") onclick!: :event { |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
292 console log: "outwards" |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
293 if: (selection valid?) { |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
294 selection out |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
295 } |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
296 } |
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
297 |
21
6c8ae6b47ab5
Small improvements to property support and elimination of setP and getP functions as they are no longer needed
Mike Pavone <pavone@retrodev.com>
parents:
18
diff
changeset
|
298 path <- (window location) pathname |
17
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
299 if: (path indexOf: "/edit/") = 0 { |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
300 editFile: (path substr: 5) |
113
c0bfff39abe3
Basic in and out navigation support added to funcall expressions. Added toHTML methods to listlit and arraylit.
Mike Pavone <pavone@retrodev.com>
parents:
111
diff
changeset
|
301 } |
11 | 302 } |
303 | |
304 } |