diff 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
line wrap: on
line diff
--- a/src/editor.tp	Mon Apr 15 21:55:26 2013 -0700
+++ b/src/editor.tp	Wed Apr 17 00:23:05 2013 -0700
@@ -131,6 +131,13 @@
 	}
 }
 
+scalarClick <- :domnode astnode event {
+	selectNode: domnode
+	setSelection: astnode
+	event stopPropagation: (foreign: undefined)
+	//TODO: set focus
+}
+
 symbolClick <- :domnode astnode event {
 	selectNode: domnode
 	popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key {
@@ -221,7 +228,18 @@
 }
 
 lambdaClick <- :domnode astnode event {
-	symbolClick: domnode astnode event
+	selectNode: domnode
+	popInscope: ((astnode symbols) allSymbols: (foreign: undefined)) onClick: :key {
+		domnode textContent!: key
+		astnode name!: key
+	}
+	inner <- if: ((astnode args) length) > 0 {
+		(astnode args) getEl: 0
+	} else: {
+		(astnode expressions) getEl: 0
+	}
+	setSelection: astnode withInNode: inner
+	event stopPropagation: (foreign: undefined)
 }
 
 visible <- "showops"