@@ -5,9 +5,10 @@ var $ = require('jquery');
55var io = require ( 'socket.io-client' ) ;
66var syntax = require ( './puddle-syntax-0.1.2' ) ;
77var syntaxNew = require ( 'puddle-syntax' ) ;
8+ var EventEmitter = require ( 'events' ) . EventEmitter ;
9+ var emitter = new EventEmitter ( ) ;
810var assert = require ( './assert' ) ;
911var view = require ( './view' ) ;
10- var menu = global . menu = require ( './menu' ) ;
1112var corpus = require ( './corpus' ) ;
1213var debug = require ( 'debug' ) ( 'puddle:editor' ) ;
1314var trace = require ( './trace' ) ( debug ) ;
@@ -75,7 +76,7 @@ var insertLine = function (line, done, fail) {
7576} ;
7677
7778// incoming create
78- var onInsertLine = function ( id , line ) {
79+ var onInsertLine = function ( id , line ) {
7980 ids . push ( id ) ;
8081 var churchTerm = syntaxNew . compiler . load ( line ) ;
8182 var root = syntax . tree . load ( churchTerm ) ;
@@ -223,6 +224,7 @@ var initCursor = function () {
223224
224225var moveCursorLine = function ( delta ) {
225226 trace ( 'moveCursorLine' , arguments ) ;
227+
226228 if ( lineChanged ) {
227229 commitLine ( ) ;
228230 }
@@ -250,7 +252,9 @@ var moveCursor = function (direction) {
250252 }
251253 } ;
252254} ;
253- shared . actions = {
255+
256+
257+ var pureActions = {
254258 commitLine : commitLine ,
255259 revertLine : function ( ) {
256260 trace ( 'revertLine' , arguments ) ;
@@ -324,6 +328,13 @@ shared.actions = {
324328 widenSelection : moveCursor ( 'U' )
325329} ;
326330
331+ var sharedActions = _ . each ( pureActions , function ( value , key , hash ) {
332+ hash [ key ] = function ( ) {
333+ value . apply ( this , _ . toArray ( arguments ) ) ;
334+ emitter . emit ( 'update' ) ;
335+ } ;
336+ } ) ;
337+
327338module . exports = {
328339 main : function ( ) {
329340 loadAllLines ( ) ;
@@ -343,7 +354,6 @@ module.exports = {
343354 }
344355 } ) ;
345356 initCursor ( ) ;
346- menu . init ( shared ) ;
347357 } ,
348358 getTerms : function ( ) {
349359 return ids . map ( function ( id ) {
@@ -355,6 +365,16 @@ module.exports = {
355365 remove : onRemoveLine ,
356366 update : onUpdateLine
357367 } ,
358- shared : shared
368+ getActions : function ( ) {
369+ return sharedActions ;
370+ } ,
371+ on : _ . bind ( emitter . on , emitter ) ,
372+ getCursor : function ( ) {
373+ return shared . cursor ;
374+ } ,
375+ //TODO this function has to be replaced by methods of forest.
376+ getCorpus : function ( ) {
377+ return corpus ;
378+ }
359379
360380} ;
0 commit comments