Mercurial > repos > tabletprog
comparison 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 |
comparison
equal
deleted
inserted
replaced
117:f4e464a17579 | 118:0a66fe3a368a |
---|---|
62 ((astnode up) domNode) onclick: fakeEvent | 62 ((astnode up) domNode) onclick: fakeEvent |
63 } | 63 } |
64 } | 64 } |
65 } | 65 } |
66 | 66 |
67 setSelection <- :astnode { | |
68 fakeEvent <- #{ | |
69 stopPropagation <- :Blah { | |
70 } | |
71 } | |
72 selection <- #{ | |
73 valid? <- true | |
74 in <- { | |
75 } | |
76 out <- { | |
77 fakeEvent <- #{ | |
78 stopPropagation <- :Blah { | |
79 } | |
80 } | |
81 ((astnode up) domNode) onclick: fakeEvent | |
82 } | |
83 } | |
84 } | |
85 | |
67 editFile <- :path { | 86 editFile <- :path { |
68 get: path :request { | 87 get: path :request { |
69 addClass: (q: "body") "editorMode" | 88 addClass: (q: "body") "editorMode" |
70 src <- request responseText | 89 src <- request responseText |
71 ast <- parser parse: src | 90 ast <- parser parse: src |
116 selectNode: domnode | 135 selectNode: domnode |
117 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key { | 136 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key { |
118 domnode textContent!: key | 137 domnode textContent!: key |
119 astnode name!: key | 138 astnode name!: key |
120 } | 139 } |
140 setSelection: astnode | |
141 event stopPropagation: (foreign: undefined) | |
142 } | |
143 | |
144 assignClick <- :domnode astnode event { | |
145 selectParent: domnode | |
146 selectQuery: ".selectParent > .varname" in: domnode | |
147 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key { | |
148 (domnode firstChild) textContent!: key | |
149 (astnode symbol) name!: key | |
150 } | |
151 setSelection: astnode withInNode: (astnode expression) | |
121 event stopPropagation: (foreign: undefined) | 152 event stopPropagation: (foreign: undefined) |
122 } | 153 } |
123 | 154 |
124 opClick <- :domnode astnode event { | 155 opClick <- :domnode astnode event { |
125 selectParent: domnode | 156 selectParent: domnode |