{"version":3,"file":"ext-hardwrap-a7fb63de.js","sources":["../../node_modules/ace-builds/src-noconflict/ext-hardwrap.js"],"sourcesContent":["ace.define(\"ace/ext/hardwrap\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/editor\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nfunction hardWrap(editor, options) {\n var max = options.column || editor.getOption(\"printMarginColumn\");\n var allowMerge = options.allowMerge != false;\n var row = Math.min(options.startRow, options.endRow);\n var endRow = Math.max(options.startRow, options.endRow);\n var session = editor.session;\n while (row <= endRow) {\n var line = session.getLine(row);\n if (line.length > max) {\n var space = findSpace(line, max, 5);\n if (space) {\n var indentation = /^\\s*/.exec(line)[0];\n session.replace(new Range(row, space.start, row, space.end), \"\\n\" + indentation);\n }\n endRow++;\n }\n else if (allowMerge && /\\S/.test(line) && row != endRow) {\n var nextLine = session.getLine(row + 1);\n if (nextLine && /\\S/.test(nextLine)) {\n var trimmedLine = line.replace(/\\s+$/, \"\");\n var trimmedNextLine = nextLine.replace(/^\\s+/, \"\");\n var mergedLine = trimmedLine + \" \" + trimmedNextLine;\n var space = findSpace(mergedLine, max, 5);\n if (space && space.start > trimmedLine.length || mergedLine.length < max) {\n var replaceRange = new Range(row, trimmedLine.length, row + 1, nextLine.length - trimmedNextLine.length);\n session.replace(replaceRange, \" \");\n row--;\n endRow--;\n }\n else if (trimmedLine.length < line.length) {\n session.remove(new Range(row, trimmedLine.length, row, line.length));\n }\n }\n }\n row++;\n }\n function findSpace(line, max, min) {\n if (line.length < max)\n return;\n var before = line.slice(0, max);\n var after = line.slice(max);\n var spaceAfter = /^(?:(\\s+)|(\\S+)(\\s+))/.exec(after);\n var spaceBefore = /(?:(\\s+)|(\\s+)(\\S+))$/.exec(before);\n var start = 0;\n var end = 0;\n if (spaceBefore && !spaceBefore[2]) {\n start = max - spaceBefore[1].length;\n end = max;\n }\n if (spaceAfter && !spaceAfter[2]) {\n if (!start)\n start = max;\n end = max + spaceAfter[1].length;\n }\n if (start) {\n return {\n start: start,\n end: end\n };\n }\n if (spaceBefore && spaceBefore[2] && spaceBefore.index > min) {\n return {\n start: spaceBefore.index,\n end: spaceBefore.index + spaceBefore[2].length\n };\n }\n if (spaceAfter && spaceAfter[2]) {\n start = max + spaceAfter[2].length;\n return {\n start: start,\n end: start + spaceAfter[3].length\n };\n }\n }\n}\nfunction wrapAfterInput(e) {\n if (e.command.name == \"insertstring\" && /\\S/.test(e.args)) {\n var editor = e.editor;\n var cursor = editor.selection.cursor;\n if (cursor.column <= editor.renderer.$printMarginColumn)\n return;\n var lastDelta = editor.session.$undoManager.$lastDelta;\n hardWrap(editor, {\n startRow: cursor.row, endRow: cursor.row,\n allowMerge: false\n });\n if (lastDelta != editor.session.$undoManager.$lastDelta)\n editor.session.markUndoGroup();\n }\n}\nvar Editor = require(\"../editor\").Editor;\nrequire(\"../config\").defineOptions(Editor.prototype, \"editor\", {\n hardWrap: {\n set: function (val) {\n if (val) {\n this.commands.on(\"afterExec\", wrapAfterInput);\n }\n else {\n this.commands.off(\"afterExec\", wrapAfterInput);\n }\n },\n value: false\n }\n});\nexports.hardWrap = hardWrap;\n\n}); (function() {\n ace.require([\"ace/ext/hardwrap\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n "],"names":["require","exports","module","Range","hardWrap","editor","options","max","allowMerge","row","endRow","session","line","space","findSpace","indentation","nextLine","trimmedLine","trimmedNextLine","mergedLine","replaceRange","min","before","after","spaceAfter","spaceBefore","start","end","wrapAfterInput","e","cursor","lastDelta","Editor","val","m"],"mappings":"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","x_google_ignoreList":[0]}