ide.addEventListener("extload", function(){ var worker = _self.worker = new WorkerClient(["treehugger", "ext", "ace", "c9"], "worker.js", "ext/language/worker", "LanguageWorker"); complete.setWorker(worker); ide.addEventListener("afteropenfile", function(event){ if (!event.node) return; if (!editors.currentEditor || !editors.currentEditor.amlEditor) // No editor, for some reason return; ext.initExtension(_self); var path = event.node.getAttribute("path"); worker.call("switchFile", [path, editors.currentEditor.amlEditor.syntax, event.doc.getValue()]); event.doc.addEventListener("close", function() { worker.emit("documentClose", {data: path}); }); // This is necessary to know which file was opened last, for some reason the afteropenfile events happen out of sequence deferred.cancel().schedule(100); }); // Language features marker.hook(_self, worker); complete.hook(_self, worker); refactor.hook(_self, worker); keyhandler.hook(_self, worker); ide.dispatchEvent("language.worker", {worker: worker}); ide.addEventListener("$event.language.worker", function(callback){ callback({worker: worker}); }); }, true);
ide.addEventListener("extload", function() { var worker; if (useUIWorker) { worker = _self.worker = createUIWorkerClient(["treehugger", "ext", "ace", "c9"], "ext/language/worker", "LanguageWorker"); } else { worker = _self.worker = new WorkerClient(["treehugger", "ext", "ace", "c9"], "ext/language/worker", "LanguageWorker"); } complete.setWorker(worker); ide.addEventListener("closefile", function(e){ var path = e.page && e.page.id; if (path) worker.emit("documentClose", {data: path}); }); ide.addEventListener("afteropenfile", function(event){ if (!event.node) return; if (!editors.currentEditor || !editors.currentEditor.amlEditor) // No editor, for some reason return; ext.initExtension(_self); var path = event.node.getAttribute("path"); var editor = editors.currentEditor.amlEditor; // background tabs=open document, foreground tab=switch to file // this is needed because with concorde changeSession event is fired when document is still empty var isVisible = editor.xmlRoot == event.node; var data = [ util.stripWSFromPath(path), editor.syntax, event.doc.getValue(), null, ide.workspaceDir ]; worker.call("documentOpen", data); if (isVisible) worker.call("switchFile", data); }); // Language features marker.hook(_self, worker); complete.hook(_self, worker); refactor.hook(_self, worker); outline.hook(_self, worker); keyhandler.hook(_self, worker); jumptodef.hook(_self, worker); quickfix.hook(_self); ide.dispatchEvent("language.worker", {worker: worker}); ide.addEventListener("$event.language.worker", function(callback){ callback({worker: worker}); }); }, true);