summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/devtools/front_end/cm/markselection.js
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/devtools/front_end/cm/markselection.js')
-rw-r--r--chromium/third_party/WebKit/Source/devtools/front_end/cm/markselection.js25
1 files changed, 16 insertions, 9 deletions
diff --git a/chromium/third_party/WebKit/Source/devtools/front_end/cm/markselection.js b/chromium/third_party/WebKit/Source/devtools/front_end/cm/markselection.js
index c97776e492d..ae0d3931438 100644
--- a/chromium/third_party/WebKit/Source/devtools/front_end/cm/markselection.js
+++ b/chromium/third_party/WebKit/Source/devtools/front_end/cm/markselection.js
@@ -4,7 +4,14 @@
// selected text the CSS class given as option value, or
// "CodeMirror-selectedtext" when the value is not a string.
-(function() {
+(function(mod) {
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
+ mod(require("../../lib/codemirror"));
+ else if (typeof define == "function" && define.amd) // AMD
+ define(["../../lib/codemirror"], mod);
+ else // Plain browser env
+ mod(CodeMirror);
+})(function(CodeMirror) {
"use strict";
CodeMirror.defineOption("styleSelectedText", false, function(cm, val, old) {
@@ -34,10 +41,7 @@
var CHUNK_SIZE = 8;
var Pos = CodeMirror.Pos;
-
- function cmp(pos1, pos2) {
- return pos1.line - pos2.line || pos1.ch - pos2.ch;
- }
+ var cmp = CodeMirror.cmpPos;
function coverRange(cm, from, to, addAt) {
if (cmp(from, to) == 0) return;
@@ -63,13 +67,16 @@
function reset(cm) {
clear(cm);
- var from = cm.getCursor("start"), to = cm.getCursor("end");
- coverRange(cm, from, to);
+ var ranges = cm.listSelections();
+ for (var i = 0; i < ranges.length; i++)
+ coverRange(cm, ranges[i].from(), ranges[i].to());
}
function update(cm) {
+ if (!cm.somethingSelected()) return clear(cm);
+ if (cm.listSelections().length > 1) return reset(cm);
+
var from = cm.getCursor("start"), to = cm.getCursor("end");
- if (cmp(from, to) == 0) return clear(cm);
var array = cm.state.markedSelection;
if (!array.length) return coverRange(cm, from, to);
@@ -105,4 +112,4 @@
}
}
}
-})();
+});