Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"], function(require, exports, module) {
- "use strict";
- var Range = require("../range").Range;
- var Document = require("../document").Document;
- var lang = require("../lib/lang");
- var Mirror = exports.Mirror = function(sender) {
- this.sender = sender;
- var doc = this.doc = new Document("");
- var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
- var _self = this;
- sender.on("change", function(e) {
- var data = e.data;
- if (data[0].start) {
- doc.applyDeltas(data);
- } else {
- for (var i = 0; i < data.length; i += 2) {
- if (Array.isArray(data[i+1])) {
- var d = {action: "insert", start: data[i], lines: data[i+1]};
- } else {
- var d = {action: "remove", start: data[i], end: data[i+1]};
- }
- doc.applyDelta(d, true);
- }
- }
- if (_self.$timeout)
- return deferredUpdate.schedule(_self.$timeout);
- _self.onUpdate();
- });
- };
- (function() {
- this.$timeout = 500;
- this.setTimeout = function(timeout) {
- this.$timeout = timeout;
- };
- this.setValue = function(value) {
- this.doc.setValue(value);
- this.deferredUpdate.schedule(this.$timeout);
- };
- this.getValue = function(callbackId) {
- this.sender.callback(this.doc.getValue(), callbackId);
- };
- this.onUpdate = function() {
- };
- this.isPending = function() {
- return this.deferredUpdate.isPending();
- };
- }).call(Mirror.prototype);
- });
- define("ace/mode/semicolonlineend",["require","exports","module","ace/lib/oop","ace/worker/mirror"], function(require, exports, module) {
- "use strict";
- var oop = require("../lib/oop");
- var Mirror = require("../worker/mirror").Mirror;
- var SemicolonLineEndCheckWorker = exports.SemicolonLineEndCheckWorker = function (sender) {
- Mirror.call(this, sender);
- this.setTimeout(500);
- this.setOptions();
- };
- oop.inherits(SemicolonLineEndCheckWorker, Mirror);
- (function() {
- this.onUpdate = function () {
- var text = this.doc.getValue();
- var lines = text.replace(/^#!.*\n/, "\n").match(/[^\r\n]+/g);
- var errors = [];
- for (var i = 0; i < lines.length; i++) {
- var lastLineCharacter = lines[i].trim().slice(-1);
- if (lastLineCharacter === ';')
- continue;
- errors.push({
- row: i,
- column: lines[i].length-1,
- text: "Missing semicolon at the end of the line",
- type: "warning",
- raw: "Missing semicolon"
- });
- }
- this.sender.emit("annotate", errors);
- };
- }).call(SemicolonLineEndCheckWorker.prototype);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement