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");
worker.attachToDocument(session.getDocument());
worker.on("error", function(e) {
session.setAnnotations([e.data]);
worker.on("annotate", function(e) {
session.setAnnotations(e.data);
});
worker.on("ok", function(e) {
worker.on("terminate", function() {
session.clearAnnotations();
});

View file

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

View file

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

View file

@ -80,11 +80,11 @@ oop.inherits(Worker, Mirror);
this.onUpdate = function() {
var value = this.doc.getValue();
if (!value)
return this.sender.emit("csslint", []);
return this.sender.emit("annotate", []);
var infoRules = this.infoRules;
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 {
row: msg.line - 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");
worker.attachToDocument(session.getDocument());
worker.on("jslint", function(results) {
worker.on("annotate", function(results) {
session.setAnnotations(results.data);
});

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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