view editor.tp @ 14:85fb6ba15bc6

Start turning AST into HTML in editor
author Mike Pavone <pavone@retrodev.com>
date Thu, 22 Mar 2012 22:52:36 -0700
parents 6e4851a204a5
children 7400bb42e0c9
line wrap: on
line source

#{
//mquery functions
q <- foreign: :query {}
qall <- foreign: :query {}
each <- foreign: :iterable fun {}
addClass <- foreign: :node className {}
removeClass <- foreign: :node className {}
get <- foreign: :url onSuccess onFail onOther {}

//JS interop helpers
setP <- foreign: :object property val {}
getP <- foreign: :object property {}

//TP Parser
parser <- foreign: #{
	parse <- foreign: :str {}
}

//js builtins
console <- foreign: #{
	log <- foreign: #{}
}

main <- {
	//bind handlers for file browser links
	each: (qall: "a") :idx el {
		el setP: "onclick" :event {
			console log: "click"
			link <- foreign: this
			get: (link getP: "href") :request {
				addClass: (q: "body") "editorMode"
				src <- request getP: "responseText"
				console log: src
				ast <- parser parse: src
				console log: ast
				ast toHTML: (q: "#src")
				//(q: "#src") setP: "textContent" (request getP: "responseText")
			}
			foreign: false
		}
	}
	
	//bind handlers for editor buttons
	each: (qall: ".controls li") :idx el {
		el setP: "onclick" :event {
			srcel <- (q: "#src")
			srcel setP: "textContent" (srcel getP: "textContent") + (el getP: "textContent")
		}
	}
	(q: "#ops_button") setP: "onclick" :event {
		addClass: (q: ".controls") "showops"
	}
	
	(q: "#builtin_button") setP: "onclick" :event {
		removeClass: (q: ".controls") "showops"
	}
}

}