c9-core/plugins/c9.ide.ace.repl/editor.js

92 wiersze
2.7 KiB
JavaScript

define(function(require, exports, module) {
main.consumes = ["editors"];
main.provides = ["ace.repl"];
return main;
function main(options, imports, register) {
var editors = imports.editors;
var Repl = require("./repl").Repl;
/***** Initialization *****/
var extensions = [];
function ReplEditor() {
var Baseclass = editors.findEditor("ace");
var plugin = new Baseclass(true, []);
// var emit = plugin.getEmitter();
var currentSession;
var ace;
plugin.on("draw", function(e) {
ace = plugin.ace;
if (currentSession)
currentSession.repl.attach(ace);
});
/***** Method *****/
/***** Lifecycle *****/
plugin.on("load", function() {
});
plugin.on("documentLoad", function(e) {
var session = e.doc.getSession();
if (session.repl) return;
session.repl = new Repl(session.session, {
mode: e.state.mode,
evaluator: e.state.evaluator,
message: e.state.message
});
});
plugin.on("documentActivate", function(e) {
currentSession = e.doc.getSession();
if (ace)
currentSession.repl.attach(ace);
});
plugin.on("documentUnload", function(e) {
var session = e.doc.getSession();
session.repl.detach();
delete session.repl;
});
plugin.on("getState", function(e) {
});
plugin.on("setState", function(e) {
});
plugin.on("clear", function() {
});
plugin.on("focus", function() {
});
plugin.on("enable", function() {
});
plugin.on("disable", function() {
});
plugin.on("unload", function() {
});
/***** Register and define API *****/
/**
* Read Only Image Editor
**/
plugin.freezePublicAPI({
});
plugin.load(null, "ace.repl");
return plugin;
}
register(null, {
"ace.repl": editors.register("ace.repl", "Ace REPL",
ReplEditor, extensions)
});
}
});