kopia lustrzana https://github.com/c9/core
92 wiersze
2.7 KiB
JavaScript
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)
|
|
});
|
|
}
|
|
}); |