Mercurial > repos > tabletprog
annotate src/editor.tp @ 132:a503a329acfa
Fix CSS clasnames for list and array literals
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 07 Aug 2013 10:08:55 -0700 |
parents | 8285784f5ff5 |
children | 15aac5334b64 |
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 {} |
127
2b25d0ce2946
Add fullscreen support and improve experience on tablet browsers by tweaking button text size and disabling zooming.
Mike Pavone <pavone@retrodev.com>
parents:
124
diff
changeset
|
10 newEl <- foreign: :tagname props {} |
2b25d0ce2946
Add fullscreen support and improve experience on tablet browsers by tweaking button text size and disabling zooming.
Mike Pavone <pavone@retrodev.com>
parents:
124
diff
changeset
|
11 |
2b25d0ce2946
Add fullscreen support and improve experience on tablet browsers by tweaking button text size and disabling zooming.
Mike Pavone <pavone@retrodev.com>
parents:
124
diff
changeset
|
12 //editor.js functions |
110
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
13 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
|
14 setEl <- foreign: :to idx val {} |
127
2b25d0ce2946
Add fullscreen support and improve experience on tablet browsers by tweaking button text size and disabling zooming.
Mike Pavone <pavone@retrodev.com>
parents:
124
diff
changeset
|
15 goFullScreen <- foreign: {} |
11 | 16 |
14
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
17 //TP Parser |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
18 parser <- foreign: #{ |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
19 parse <- foreign: :str {} |
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
20 } |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
21 isLambda <- foreign: :astnode {} |
14
85fb6ba15bc6
Start turning AST into HTML in editor
Mike Pavone <pavone@retrodev.com>
parents:
12
diff
changeset
|
22 |
11 | 23 //js builtins |
24 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
|
25 log <- foreign: :val {} |
11 | 26 } |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
27 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
|
28 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
|
29 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
|
30 } |
11 | 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 } |
131
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
52 |
117
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
53 selection <- #{ |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
54 valid? <- true |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
55 in <- { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
56 (innode domNode) onclick: fakeEvent |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
57 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
58 out <- { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
59 ((astnode up) domNode) onclick: fakeEvent |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
60 } |
131
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
61 next <- { |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
62 (((astnode up) getNext: astnode) domNode) onclick: fakeEvent |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
63 } |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
64 |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
65 previous <- { |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
66 (((astnode up) getPrev: astnode) domNode) onclick: fakeEvent |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
67 } |
117
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
68 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
69 } |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
70 |
118
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
71 setSelection <- :astnode { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
72 fakeEvent <- #{ |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
73 stopPropagation <- :Blah { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
74 } |
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 selection <- #{ |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
77 valid? <- true |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
78 in <- { |
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 out <- { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
81 fakeEvent <- #{ |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
82 stopPropagation <- :Blah { |
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 ((astnode up) domNode) onclick: fakeEvent |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
86 } |
131
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
87 next <- { |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
88 console log: "selection next" |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
89 (((astnode up) getNext: astnode) domNode) onclick: fakeEvent |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
90 } |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
91 previous <- { |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
92 (((astnode up) getPrev: astnode) domNode) onclick: fakeEvent |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
93 } |
118
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
94 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
95 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
96 |
17
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
97 editFile <- :path { |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
98 get: path :request { |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
99 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
|
100 src <- request responseText |
17
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
101 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
|
102 ast populateSymbols: (foreign: null) |
17
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
103 ast toHTML: (q: "#src") |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
104 } |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
105 } |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
106 |
25
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
107 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
|
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 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
|
112 } |
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 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
|
115 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
|
116 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
117 |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
118 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
|
119 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
|
120 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
|
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 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
|
123 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
|
124 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
125 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
126 |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
127 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
|
128 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
|
129 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
|
130 } |
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
|
131 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
|
132 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
133 |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
134 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
|
135 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
|
136 inscope innerHTML!: "" |
24
fe3533494ce9
Display symbols order first by depth. Eliminate extraneous setter symbols
Mike Pavone <pavone@retrodev.com>
parents:
23
diff
changeset
|
137 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
|
138 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
|
139 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
|
140 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
|
141 }) |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
142 } |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
143 } |
068d63627b16
Populate in scope symbol buttons when clicking on a symbol in the source
Mike Pavone <pavone@retrodev.com>
parents:
21
diff
changeset
|
144 |
119
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
145 scalarClick <- :domnode astnode event { |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
146 selectNode: domnode |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
147 setSelection: astnode |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
148 event stopPropagation: (foreign: undefined) |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
149 //TODO: set focus |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
150 } |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
151 |
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
|
152 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
|
153 selectNode: domnode |
105
35006a6e1c47
Fixed more editor coderot and improved syntax/selection coloring a bit.
Mike Pavone <pavone@retrodev.com>
parents:
104
diff
changeset
|
154 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
|
155 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
|
156 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
|
157 } |
118
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
158 setSelection: astnode |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
159 event stopPropagation: (foreign: undefined) |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
160 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
161 |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
162 assignClick <- :domnode astnode event { |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
163 selectParent: domnode |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
164 selectQuery: ".selectParent > .varname" in: domnode |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
165 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
|
166 (domnode firstChild) textContent!: key |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
167 (astnode symbol) name!: key |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
168 } |
0a66fe3a368a
Allow selection and navigation of assignment nodes.
Mike Pavone <pavone@retrodev.com>
parents:
117
diff
changeset
|
169 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
|
170 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
|
171 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
172 |
116
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
173 opClick <- :domnode astnode event { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
174 selectParent: domnode |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
175 selectQuery: ".selectParent > .opname" in: domnode |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
176 showOps |
117
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
177 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
|
178 event stopPropagation: (foreign: undefined) |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
179 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
180 |
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
|
181 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
|
182 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
|
183 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
|
184 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
|
185 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
|
186 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
|
187 } |
117
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
188 inner <- if: (astnode receiver) != (foreign: null) { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
189 astnode receiver |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
190 } else: { |
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
191 (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
|
192 } |
117
f4e464a17579
Cleanup selection code in editor.
Mike Pavone <pavone@retrodev.com>
parents:
116
diff
changeset
|
193 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
|
194 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
|
195 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
|
196 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
|
197 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
|
198 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
|
199 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
|
200 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
201 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
|
202 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
|
203 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
|
204 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
|
205 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
|
206 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
|
207 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
|
208 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
|
209 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
|
210 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
|
211 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
|
212 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
|
213 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
|
214 } 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
|
215 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
|
216 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
217 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
|
218 } else: { |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
219 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
|
220 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
|
221 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
|
222 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
|
223 }) node |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
224 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
|
225 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
226 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
|
227 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
228 } else: { |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
229 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
|
230 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
|
231 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
|
232 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
|
233 }) |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
234 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
|
235 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
236 } |
d715fb3c39ab
Implemented clicking on symbols inside inscope box to replace function name in funcall.
Mike Pavone <pavone@retrodev.com>
parents:
109
diff
changeset
|
237 } |
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
|
238 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
|
239 } |
4d87c38404d6
List literals, fixes to implicit self property lookup, import statement and editor improvements
Mike Pavone <pavone@retrodev.com>
parents:
24
diff
changeset
|
240 |
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
|
241 lambdaClick <- :domnode astnode event { |
119
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
242 selectNode: domnode |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
243 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key { |
124
1157639353e7
Add dummy handler for clicking a symbol while a lambda is selected. Fix the code for selecting the first inner node of an object literal.
Mike Pavone <pavone@retrodev.com>
parents:
120
diff
changeset
|
244 console log: "foooobar!" |
119
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
245 } |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
246 inner <- if: ((astnode args) length) > 0 { |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
247 (astnode args) getEl: 0 |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
248 } else: { |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
249 (astnode expressions) getEl: 0 |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
250 } |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
251 setSelection: astnode withInNode: inner |
77f7cd65e121
Add selection of number and string literals. Support inward navigation of lambdas.
Mike Pavone <pavone@retrodev.com>
parents:
118
diff
changeset
|
252 event stopPropagation: (foreign: undefined) |
28 | 253 } |
254 | |
120
d5dc9507d612
Basic support for selecting objects in the editor.
Mike Pavone <pavone@retrodev.com>
parents:
119
diff
changeset
|
255 objectClick <- :domnode astnode event { |
d5dc9507d612
Basic support for selecting objects in the editor.
Mike Pavone <pavone@retrodev.com>
parents:
119
diff
changeset
|
256 selectNode: domnode |
d5dc9507d612
Basic support for selecting objects in the editor.
Mike Pavone <pavone@retrodev.com>
parents:
119
diff
changeset
|
257 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key { |
d5dc9507d612
Basic support for selecting objects in the editor.
Mike Pavone <pavone@retrodev.com>
parents:
119
diff
changeset
|
258 console log: "fooobar!" |
d5dc9507d612
Basic support for selecting objects in the editor.
Mike Pavone <pavone@retrodev.com>
parents:
119
diff
changeset
|
259 } |
124
1157639353e7
Add dummy handler for clicking a symbol while a lambda is selected. Fix the code for selecting the first inner node of an object literal.
Mike Pavone <pavone@retrodev.com>
parents:
120
diff
changeset
|
260 setSelection: astnode withInNode: ((astnode messages) getEl: 0) |
120
d5dc9507d612
Basic support for selecting objects in the editor.
Mike Pavone <pavone@retrodev.com>
parents:
119
diff
changeset
|
261 event stopPropagation: (foreign: undefined) |
d5dc9507d612
Basic support for selecting objects in the editor.
Mike Pavone <pavone@retrodev.com>
parents:
119
diff
changeset
|
262 } |
d5dc9507d612
Basic support for selecting objects in the editor.
Mike Pavone <pavone@retrodev.com>
parents:
119
diff
changeset
|
263 |
116
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
264 visible <- "showops" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
265 |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
266 showOps <- { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
267 each: (qall: ".controls") :idx el { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
268 removeClass: el visible |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
269 addClass: el "showops" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
270 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
271 visible <- "showops" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
272 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
273 |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
274 showLit <- { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
275 each: (qall: ".controls") :idx el { |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
276 removeClass: el visible |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
277 addClass: el "showlit" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
278 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
279 visible <- "showlit" |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
280 } |
9cf3e0b18ecc
Add support for selecting operator expressions in the editor
Mike Pavone <pavone@retrodev.com>
parents:
113
diff
changeset
|
281 |
11 | 282 main <- { |
30
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
283 get: "/src/" :data { |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
284 fakeEl <- newEl: "div" #{ |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
285 innerHTML <- data response |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
286 } |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
287 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
|
288 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
|
289 nel <- newEl: "a" #{ |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
290 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
|
291 textContent <- el textContent |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
292 } |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
293 nel onclick!: :event { |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
294 link <- foreign: this |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
295 path <- link href |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
296 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
|
297 editFile: path |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
298 foreign: false |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
299 } |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
300 li <- newEl: "li" |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
301 li appendChild: nel |
608eb70fe261
Fix some compiler bugs and do initial work on module import
Mike Pavone <pavone@retrodev.com>
parents:
29
diff
changeset
|
302 (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
|
303 } |
12
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
304 } |
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
305 } |
124
1157639353e7
Add dummy handler for clicking a symbol while a lambda is selected. Fix the code for selecting the first inner node of an object literal.
Mike Pavone <pavone@retrodev.com>
parents:
120
diff
changeset
|
306 |
12
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
307 //bind handlers for editor buttons |
6e4851a204a5
Add ability to load code into editor
Mike Pavone <pavone@retrodev.com>
parents:
11
diff
changeset
|
308 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
|
309 el onclick!: :event { |
11 | 310 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
|
311 srcel textContent!: (srcel textContent) + (el textContent) |
11 | 312 } |
313 } | |
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
|
314 (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
|
315 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
|
316 } |
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
|
317 (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
|
318 showLit |
11 | 319 } |
124
1157639353e7
Add dummy handler for clicking a symbol while a lambda is selected. Fix the code for selecting the first inner node of an object literal.
Mike Pavone <pavone@retrodev.com>
parents:
120
diff
changeset
|
320 |
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
|
321 (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
|
322 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
|
323 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
|
324 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
|
325 } |
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
|
326 } |
124
1157639353e7
Add dummy handler for clicking a symbol while a lambda is selected. Fix the code for selecting the first inner node of an object literal.
Mike Pavone <pavone@retrodev.com>
parents:
120
diff
changeset
|
327 |
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
|
328 (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
|
329 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
|
330 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
|
331 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
|
332 } |
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
|
333 } |
124
1157639353e7
Add dummy handler for clicking a symbol while a lambda is selected. Fix the code for selecting the first inner node of an object literal.
Mike Pavone <pavone@retrodev.com>
parents:
120
diff
changeset
|
334 |
131
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
335 (q: "#next") onclick!: :event { |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
336 if: (selection valid?) { |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
337 selection next |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
338 } |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
339 } |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
340 |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
341 (q: "#prev") onclick!: :event { |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
342 if: (selection valid?) { |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
343 selection previous |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
344 } |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
345 } |
8285784f5ff5
Implement previous and next buttons
Mike Pavone <pavone@retrodev.com>
parents:
127
diff
changeset
|
346 |
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
|
347 path <- (window location) pathname |
17
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
348 if: (path indexOf: "/edit/") = 0 { |
7400bb42e0c9
Add direct file edit link support
Mike Pavone <pavone@retrodev.com>
parents:
14
diff
changeset
|
349 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
|
350 } |
127
2b25d0ce2946
Add fullscreen support and improve experience on tablet browsers by tweaking button text size and disabling zooming.
Mike Pavone <pavone@retrodev.com>
parents:
124
diff
changeset
|
351 (q: "#fullscreen") onclick!: :event { |
2b25d0ce2946
Add fullscreen support and improve experience on tablet browsers by tweaking button text size and disabling zooming.
Mike Pavone <pavone@retrodev.com>
parents:
124
diff
changeset
|
352 goFullScreen: |
2b25d0ce2946
Add fullscreen support and improve experience on tablet browsers by tweaking button text size and disabling zooming.
Mike Pavone <pavone@retrodev.com>
parents:
124
diff
changeset
|
353 } |
11 | 354 } |
355 | |
356 } |