Skip to content

Commit d1f3cfc

Browse files
committed
create custom coffee mode with an empty worker
1 parent fde72d1 commit d1f3cfc

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
define(function(require, exports, module) {
22

33
var ace = require("ace/ace");
4-
var CoffescriptMode = require("ace/mode/coffee").Mode;
4+
var CoffescriptMode = require("jsconf/coffee").Mode;
55
var JsMode = require("ace/mode/javascript").Mode;
66
var Theme = require("ace/theme/twilight");
77

coffee-worker.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
define(function(require, exports, module) {
3+
4+
var oop = require("pilot/oop");
5+
var Mirror = require("ace/worker/mirror").Mirror;
6+
7+
window.addEventListener = function() {};
8+
importScripts(require.tlns.jsconf + "/coffeescript.js");
9+
10+
var CoffeeScriptWorker = exports.CoffeeScriptWorker = function(sender) {
11+
Mirror.call(this, sender);
12+
this.setTimeout(200);
13+
};
14+
15+
oop.inherits(CoffeeScriptWorker, Mirror);
16+
17+
(function() {
18+
19+
this.onUpdate = function() {
20+
console.log("worker update")
21+
}
22+
23+
}).call(CoffeeScriptWorker.prototype);
24+
25+
});

coffee.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
define(function(require, exports, module) {
2+
3+
var CoffeeMode = require("ace/mode/coffee").Mode;
4+
var WorkerClient = require("ace/worker/worker_client").WorkerClient;
5+
var oop = require("pilot/oop");
6+
7+
function CoffeeModeExt() {
8+
CoffeeMode.call(this);
9+
};
10+
11+
oop.inherits(CoffeeModeExt, CoffeeMode);
12+
13+
CoffeeModeExt.prototype.createWorker = function(session) {
14+
var doc = session.getDocument();
15+
var worker = new WorkerClient(["ace", "pilot", "jsconf"], "worker-coffee.js", "jsconf/coffee-worker", "CoffeeScriptWorker");
16+
worker.call("setValue", [doc.getValue()]);
17+
18+
doc.on("change", function(e) {
19+
e.range = {
20+
start: e.data.range.start,
21+
end: e.data.range.end
22+
};
23+
worker.emit("change", e);
24+
});
25+
}
26+
27+
exports.Mode = CoffeeModeExt;
28+
29+
});

0 commit comments

Comments
 (0)