vendor/assets/javascripts/codemirror/addons/wrap/hardwrap.js in codemirror-rails-3.24 vs vendor/assets/javascripts/codemirror/addons/wrap/hardwrap.js in codemirror-rails-4.0

- old
+ new

@@ -1,6 +1,13 @@ -(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"; var Pos = CodeMirror.Pos; function findParagraph(cm, pos, options) { @@ -87,10 +94,28 @@ if (!pos) pos = this.getCursor(); var para = findParagraph(this, pos, options); return wrapRange(this, Pos(para.from, 0), Pos(para.to - 1), options); }); + CodeMirror.commands.wrapLines = function(cm) { + cm.operation(function() { + var ranges = cm.listSelections(), at = cm.lastLine() + 1; + for (var i = ranges.length - 1; i >= 0; i--) { + var range = ranges[i], span; + if (range.empty()) { + var para = findParagraph(cm, range.head, {}); + span = {from: Pos(para.from, 0), to: Pos(para.to - 1)}; + } else { + span = {from: range.from(), to: range.to()}; + } + if (span.to.line >= at) continue; + at = span.from.line; + wrapRange(cm, span.from, span.to, {}); + } + }); + }; + CodeMirror.defineExtension("wrapRange", function(from, to, options) { return wrapRange(this, from, to, options || {}); }); CodeMirror.defineExtension("wrapParagraphsInRange", function(from, to, options) { @@ -106,6 +131,6 @@ for (var i = paras.length - 1; i >= 0; --i) madeChange = madeChange || wrapRange(cm, Pos(paras[i].from, 0), Pos(paras[i].to - 1), options); }); return madeChange; }); -})(); +});