make worker events more consistent

This commit is contained in:
nightwing 2015-01-11 22:48:39 +04:00
commit 264923e4df
12 changed files with 37 additions and 46 deletions

View file

@ -116,11 +116,11 @@ oop.inherits(Mode, TextMode);
var worker = new WorkerClient(["ace"], "ace/mode/coffee_worker", "Worker"); var worker = new WorkerClient(["ace"], "ace/mode/coffee_worker", "Worker");
worker.attachToDocument(session.getDocument()); worker.attachToDocument(session.getDocument());
worker.on("error", function(e) { worker.on("annotate", function(e) {
session.setAnnotations([e.data]); session.setAnnotations(e.data);
}); });
worker.on("ok", function(e) { worker.on("terminate", function() {
session.clearAnnotations(); session.clearAnnotations();
}); });

View file

@ -49,13 +49,13 @@ oop.inherits(Worker, Mirror);
this.onUpdate = function() { this.onUpdate = function() {
var value = this.doc.getValue(); var value = this.doc.getValue();
var errors = [];
try { try {
coffee.parse(value).compile(); coffee.parse(value).compile();
} catch(e) { } catch(e) {
var loc = e.location; var loc = e.location;
if (loc) { if (loc) {
this.sender.emit("error", { errors.push({
row: loc.first_line, row: loc.first_line,
column: loc.first_column, column: loc.first_column,
endRow: loc.last_line, endRow: loc.last_line,
@ -64,9 +64,8 @@ oop.inherits(Worker, Mirror);
type: "error" type: "error"
}); });
} }
return;
} }
this.sender.emit("ok"); this.sender.emit("annotate", errors);
}; };
}).call(Worker.prototype); }).call(Worker.prototype);

View file

@ -81,7 +81,7 @@ oop.inherits(Mode, TextMode);
var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
worker.attachToDocument(session.getDocument()); worker.attachToDocument(session.getDocument());
worker.on("csslint", function(e) { worker.on("annotate", function(e) {
session.setAnnotations(e.data); session.setAnnotations(e.data);
}); });

View file

@ -80,11 +80,11 @@ oop.inherits(Worker, Mirror);
this.onUpdate = function() { this.onUpdate = function() {
var value = this.doc.getValue(); var value = this.doc.getValue();
if (!value) if (!value)
return this.sender.emit("csslint", []); return this.sender.emit("annotate", []);
var infoRules = this.infoRules; var infoRules = this.infoRules;
var result = CSSLint.verify(value, this.ruleset); var result = CSSLint.verify(value, this.ruleset);
this.sender.emit("csslint", result.messages.map(function(msg) { this.sender.emit("annotate", result.messages.map(function(msg) {
return { return {
row: msg.line - 1, row: msg.line - 1,
column: msg.col - 1, column: msg.col - 1,

View file

@ -98,7 +98,7 @@ oop.inherits(Mode, TextMode);
var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
worker.attachToDocument(session.getDocument()); worker.attachToDocument(session.getDocument());
worker.on("jslint", function(results) { worker.on("annotate", function(results) {
session.setAnnotations(results.data); session.setAnnotations(results.data);
}); });

View file

@ -116,12 +116,10 @@ oop.inherits(JavaScriptWorker, Mirror);
this.onUpdate = function() { this.onUpdate = function() {
var value = this.doc.getValue(); var value = this.doc.getValue();
value = value.replace(/^#!.*\n/, "\n"); value = value.replace(/^#!.*\n/, "\n");
if (!value) { if (!value)
this.sender.emit("jslint", []); return this.sender.emit("annotate", []);
return;
}
var errors = [];
var errors = [];
// jshint reports many false errors // jshint reports many false errors
// report them as error only if code is actually invalid // report them as error only if code is actually invalid
var maxErrorLevel = this.isValidJS(value) ? "warning" : "error"; var maxErrorLevel = this.isValidJS(value) ? "warning" : "error";
@ -179,7 +177,7 @@ oop.inherits(JavaScriptWorker, Mirror);
} }
// console.log("lint time: " + (new Date() - start)); // console.log("lint time: " + (new Date() - start));
this.sender.emit("jslint", errors); this.sender.emit("annotate", errors);
}; };
}).call(JavaScriptWorker.prototype); }).call(JavaScriptWorker.prototype);

View file

@ -74,11 +74,11 @@ oop.inherits(Mode, TextMode);
var worker = new WorkerClient(["ace"], "ace/mode/json_worker", "JsonWorker"); var worker = new WorkerClient(["ace"], "ace/mode/json_worker", "JsonWorker");
worker.attachToDocument(session.getDocument()); worker.attachToDocument(session.getDocument());
worker.on("error", function(e) { worker.on("annotate", function(e) {
session.setAnnotations([e.data]); session.setAnnotations(e.data);
}); });
worker.on("ok", function() { worker.on("terminate", function() {
session.clearAnnotations(); session.clearAnnotations();
}); });

View file

@ -46,21 +46,20 @@ oop.inherits(JsonWorker, Mirror);
this.onUpdate = function() { this.onUpdate = function() {
var value = this.doc.getValue(); var value = this.doc.getValue();
var errors = [];
try { try {
if (value) if (value)
parse(value); parse(value);
} catch (e) { } catch (e) {
var pos = this.doc.indexToPosition(e.at-1); var pos = this.doc.indexToPosition(e.at-1);
this.sender.emit("error", { errors.push({
row: pos.row, row: pos.row,
column: pos.column, column: pos.column,
text: e.message, text: e.message,
type: "error" type: "error"
}); });
return;
} }
this.sender.emit("ok"); this.sender.emit("annotate", errors);
}; };
}).call(JsonWorker.prototype); }).call(JsonWorker.prototype);

View file

@ -148,11 +148,11 @@ oop.inherits(Mode, TextMode);
var worker = new WorkerClient(["ace"], "ace/mode/lua_worker", "Worker"); var worker = new WorkerClient(["ace"], "ace/mode/lua_worker", "Worker");
worker.attachToDocument(session.getDocument()); worker.attachToDocument(session.getDocument());
worker.on("error", function(e) { worker.on("annotate", function(e) {
session.setAnnotations([e.data]); session.setAnnotations(e.data);
}); });
worker.on("ok", function(e) { worker.on("terminate", function() {
session.clearAnnotations(); session.clearAnnotations();
}); });

View file

@ -46,24 +46,23 @@ oop.inherits(Worker, Mirror);
this.onUpdate = function() { this.onUpdate = function() {
var value = this.doc.getValue(); var value = this.doc.getValue();
var errors = [];
// var t=Date.now()
// var t=Date.now()
try { try {
luaparse.parse(value); luaparse.parse(value);
} catch(e) { } catch(e) {
if (e instanceof SyntaxError) { if (e instanceof SyntaxError) {
this.sender.emit("error", { errors.push({
row: e.line - 1, row: e.line - 1,
column: e.column, column: e.column,
text: e.message, text: e.message,
type: "error" type: "error"
}); });
} }
// console.log( t-Date.now())
return;
} }
// console.log( t-Date.now()) // console.log( t-Date.now())
this.sender.emit("ok"); this.sender.emit("annotate", errors);
}; };
}).call(Worker.prototype); }).call(Worker.prototype);

View file

@ -143,11 +143,11 @@ oop.inherits(Mode, HtmlMode);
if (this.inlinePhp) if (this.inlinePhp)
worker.call("setOptions", [{inline: true}]); worker.call("setOptions", [{inline: true}]);
worker.on("error", function(e) { worker.on("annotate", function(e) {
session.setAnnotations(e.data); session.setAnnotations(e.data);
}); });
worker.on("ok", function() { worker.on("terminate", function() {
session.clearAnnotations(); session.clearAnnotations();
}); });

View file

@ -69,11 +69,7 @@ oop.inherits(PhpWorker, Mirror);
// console.log("lint time: " + (new Date() - start)); // console.log("lint time: " + (new Date() - start));
if (errors.length) { this.sender.emit("annotate", errors);
this.sender.emit("error", errors);
} else {
this.sender.emit("ok");
}
}; };
}).call(PhpWorker.prototype); }).call(PhpWorker.prototype);