diff options
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.js | 25 |
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 @@ } } } -})(); +}); |