From d40a9a228f500ad90c15557ef250c1853eb70b9f Mon Sep 17 00:00:00 2001 From: Harutyun Amirjanyan Date: Mon, 27 May 2013 12:27:06 -0400 Subject: [PATCH] add changes from newclient --- lib/ace/document.js | 4 +- lib/ace/search.js | 4 +- lib/ace/virtual_renderer.js | 24 ++++++---- lib/ace/worker/worker_sourcemint.js | 73 ----------------------------- 4 files changed, 18 insertions(+), 87 deletions(-) delete mode 100644 lib/ace/worker/worker_sourcemint.js diff --git a/lib/ace/document.js b/lib/ace/document.js index 8a073f86..8db94078 100644 --- a/lib/ace/document.js +++ b/lib/ace/document.js @@ -627,9 +627,9 @@ var Document = function(text) { var index = 0; var row = Math.min(pos.row, lines.length); for (var i = startRow || 0; i < row; ++i) - index += lines[i].length; + index += lines[i].length + newlineLength; - return index + newlineLength * i + pos.column; + return index + pos.column; }; }).call(Document.prototype); diff --git a/lib/ace/search.js b/lib/ace/search.js index 63f46423..48cd88fb 100644 --- a/lib/ace/search.js +++ b/lib/ace/search.js @@ -283,7 +283,7 @@ var Search = function() { }; }; - this.$assembleRegExp = function(options) { + this.$assembleRegExp = function(options, $disableFakeMultiline) { if (options.needle instanceof RegExp) return options.re = options.needle; @@ -300,7 +300,7 @@ var Search = function() { var modifier = options.caseSensitive ? "g" : "gi"; - options.$isMultiLine = /[\n\r]/.test(needle); + options.$isMultiLine = !$disableFakeMultiline && /[\n\r]/.test(needle); if (options.$isMultiLine) return options.re = this.$assembleMultilineRegExp(needle, modifier); diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index 9d0d1b1d..8449b958 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -349,6 +349,8 @@ var VirtualRenderer = function(container, theme) { if (this.session.getUseWrapMode() && this.adjustWrapLimit()) this.$loop.schedule(this.CHANGE_FULL); + else + this.$loop.schedule(this.CHANGE_MARKER); }; /** @@ -1270,12 +1272,14 @@ var VirtualRenderer = function(container, theme) { afterLoad(theme); } - function afterLoad(theme) { - if (!theme.cssClass) + function afterLoad(module) { + if (_self.$themeValue != theme) + return; + if (!module.cssClass) return; dom.importCssString( - theme.cssText, - theme.cssClass, + module.cssText, + module.cssClass, _self.container.ownerDocument ); @@ -1283,13 +1287,13 @@ var VirtualRenderer = function(container, theme) { dom.removeCssClass(_self.container, _self.theme.cssClass); // this is kept only for backwards compatibility - _self.$theme = theme.cssClass; + _self.$theme = module.cssClass; - _self.theme = theme; - dom.addCssClass(_self.container, theme.cssClass); - dom.setCssClass(_self.container, "ace_dark", theme.isDark); + _self.theme = module; + dom.addCssClass(_self.container, module.cssClass); + dom.setCssClass(_self.container, "ace_dark", module.isDark); - var padding = theme.padding || 4; + var padding = module.padding || 4; if (_self.$padding && padding != _self.$padding) _self.setPadding(padding); @@ -1299,7 +1303,7 @@ var VirtualRenderer = function(container, theme) { _self.onResize(); } - _self._dispatchEvent('themeLoaded',{theme:theme}); + _self._dispatchEvent('themeLoaded',{theme:module}); } }; diff --git a/lib/ace/worker/worker_sourcemint.js b/lib/ace/worker/worker_sourcemint.js deleted file mode 100644 index bc305b79..00000000 --- a/lib/ace/worker/worker_sourcemint.js +++ /dev/null @@ -1,73 +0,0 @@ - -define(function(require, exports, module) { - - "no use strict"; - - exports.main = function() - { - var console = { - log: function(msg) { - postMessage({type: "log", data: msg}); - } - }; - - // NOTE: This sets the global `window` object used by workers. - // TODO: Pass into worker what it needs and don't set global here. - window = { - console: console - }; - - function initSender() { - - var EventEmitter = require("ace/lib/event_emitter").EventEmitter; - var oop = require("ace/lib/oop"); - - var Sender = function() {}; - - (function() { - - oop.implement(this, EventEmitter); - - this.callback = function(data, callbackId) { - postMessage({ - type: "call", - id: callbackId, - data: data - }); - }; - - this.emit = function(name, data) { - postMessage({ - type: "event", - name: name, - data: data - }); - }; - - }).call(Sender.prototype); - - return new Sender(); - } - - var main; - var sender; - - onmessage = function(e) { - var msg = e.data; - if (msg.command) { - main[msg.command].apply(main, msg.args); - } - else if (msg.init) { - require("ace/lib/fixoldbrowsers"); - sender = initSender(); - require.async(msg.module, function(WORKER) { - var clazz = WORKER[msg.classname]; - main = new clazz(sender); - }); - } - else if (msg.event && sender) { - sender._emit(msg.event, msg.data); - } - }; - } -});