comparison editor.js @ 26:fe593c1df568

Display receiver arg in editor. Improve formatting in editor.
author Mike Pavone <pavone@retrodev.com>
date Wed, 04 Apr 2012 23:15:00 -0700
parents 4d87c38404d6
children 93bbc4c8be95
comparison
equal deleted inserted replaced
25:4d87c38404d6 26:fe593c1df568
12 12
13 lambda.prototype.toHTML = function(node) { 13 lambda.prototype.toHTML = function(node) {
14 var el = newEl('div', { 14 var el = newEl('div', {
15 className: 'lambda' 15 className: 'lambda'
16 }); 16 });
17 var args = newEl('div', {
18 className: 'args'
19 });
17 for (var i in this.args) { 20 for (var i in this.args) {
18 this.args[i].toHTML(el); 21 this.args[i].toHTML(args);
19 } 22 }
20 var body = newEl('div', { 23 var body = newEl('div', {
21 className: 'lambdabody' 24 className: 'lambdabody'
22 }); 25 });
23 for (var i in this.expressions) { 26 for (var i in this.expressions) {
24 this.expressions[i].toHTML(body); 27 this.expressions[i].toHTML(body);
25 } 28 }
29 el.appendChild(args);
26 el.appendChild(body); 30 el.appendChild(body);
27 node.appendChild(el); 31 node.appendChild(el);
28 }; 32 };
29 33
30 assignment.prototype.toHTML = function(node) { 34 assignment.prototype.toHTML = function(node) {
77 funcall.prototype.toHTML = function(node) { 81 funcall.prototype.toHTML = function(node) {
78 var astNode = this; 82 var astNode = this;
79 var base = newEl('div', { 83 var base = newEl('div', {
80 className: 'funcall' 84 className: 'funcall'
81 }); 85 });
86 if (this.receiver) {
87 this.receiver.toHTML(base);
88 }
82 var parts = this.name.split(':'); 89 var parts = this.name.split(':');
83 for (var i in parts ) { 90 for (var i in parts ) {
84 if(parts[i]) { 91 if(parts[i]) {
85 base.appendChild(newEl('span', { 92 base.appendChild(newEl('span', {
86 textContent: parts[i] + ':', 93 textContent: parts[i] + (this.receiver && parts.length == 1 ? '' : ':'),
87 className: 'funpart', 94 className: 'funpart',
88 onclick: function() { 95 onclick: function() {
89 return mainModule.funClick(this, astNode); 96 return mainModule.funClick(this, astNode);
90 }})); 97 }}));
91 if (this.args[i]) { 98 if (this.args[i]) {