comparison src/editor.tp @ 119:77f7cd65e121

Add selection of number and string literals. Support inward navigation of lambdas.
author Mike Pavone <pavone@retrodev.com>
date Wed, 17 Apr 2013 00:23:05 -0700
parents 0a66fe3a368a
children d5dc9507d612
comparison
equal deleted inserted replaced
118:0a66fe3a368a 119:77f7cd65e121
127 inscope appendChild: (newEl: "li" #{ 127 inscope appendChild: (newEl: "li" #{
128 textContent <- key 128 textContent <- key
129 onclick <- :Event { handler: key } 129 onclick <- :Event { handler: key }
130 }) 130 })
131 } 131 }
132 }
133
134 scalarClick <- :domnode astnode event {
135 selectNode: domnode
136 setSelection: astnode
137 event stopPropagation: (foreign: undefined)
138 //TODO: set focus
132 } 139 }
133 140
134 symbolClick <- :domnode astnode event { 141 symbolClick <- :domnode astnode event {
135 selectNode: domnode 142 selectNode: domnode
136 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key { 143 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key {
219 } 226 }
220 event stopPropagation: (foreign: undefined) 227 event stopPropagation: (foreign: undefined)
221 } 228 }
222 229
223 lambdaClick <- :domnode astnode event { 230 lambdaClick <- :domnode astnode event {
224 symbolClick: domnode astnode event 231 selectNode: domnode
232 popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key {
233 domnode textContent!: key
234 astnode name!: key
235 }
236 inner <- if: ((astnode args) length) > 0 {
237 (astnode args) getEl: 0
238 } else: {
239 (astnode expressions) getEl: 0
240 }
241 setSelection: astnode withInNode: inner
242 event stopPropagation: (foreign: undefined)
225 } 243 }
226 244
227 visible <- "showops" 245 visible <- "showops"
228 246
229 showOps <- { 247 showOps <- {