{"version":3,"file":"keybinding-emacs-64dc84ab.js","sources":["../../node_modules/ace-builds/src-noconflict/keybinding-emacs.js"],"sourcesContent":["ace.define(\"ace/occur\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/search\",\"ace/edit_session\",\"ace/search_highlight\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar Search = require(\"./search\").Search;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar Occur = /** @class */ (function (_super) {\n __extends(Occur, _super);\n function Occur() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Occur.prototype.enter = function (editor, options) {\n if (!options.needle)\n return false;\n var pos = editor.getCursorPosition();\n this.displayOccurContent(editor, options);\n var translatedPos = this.originalToOccurPosition(editor.session, pos);\n editor.moveCursorToPosition(translatedPos);\n return true;\n };\n Occur.prototype.exit = function (editor, options) {\n var pos = options.translatePosition && editor.getCursorPosition();\n var translatedPos = pos && this.occurToOriginalPosition(editor.session, pos);\n this.displayOriginalContent(editor);\n if (translatedPos)\n editor.moveCursorToPosition(translatedPos);\n return true;\n };\n Occur.prototype.highlight = function (sess, regexp) {\n var hl = sess.$occurHighlight = sess.$occurHighlight || sess.addDynamicMarker(new SearchHighlight(null, \"ace_occur-highlight\", \"text\"));\n hl.setRegexp(regexp);\n sess._emit(\"changeBackMarker\"); // force highlight layer redraw\n };\n Occur.prototype.displayOccurContent = function (editor, options) {\n this.$originalSession = editor.session;\n var found = this.matchingLines(editor.session, options);\n var lines = found.map(function (foundLine) { return foundLine.content; });\n var occurSession = new EditSession(lines.join('\\n'));\n occurSession.$occur = this;\n occurSession.$occurMatchingLines = found;\n editor.setSession(occurSession);\n this.$useEmacsStyleLineStart = this.$originalSession.$useEmacsStyleLineStart;\n occurSession.$useEmacsStyleLineStart = this.$useEmacsStyleLineStart;\n this.highlight(occurSession, options.re);\n occurSession._emit('changeBackMarker');\n };\n Occur.prototype.displayOriginalContent = function (editor) {\n editor.setSession(this.$originalSession);\n this.$originalSession.$useEmacsStyleLineStart = this.$useEmacsStyleLineStart;\n };\n Occur.prototype.originalToOccurPosition = function (session, pos) {\n var lines = session.$occurMatchingLines;\n var nullPos = { row: 0, column: 0 };\n if (!lines)\n return nullPos;\n for (var i = 0; i < lines.length; i++) {\n if (lines[i].row === pos.row)\n return { row: i, column: pos.column };\n }\n return nullPos;\n };\n Occur.prototype.occurToOriginalPosition = function (session, pos) {\n var lines = session.$occurMatchingLines;\n if (!lines || !lines[pos.row])\n return pos;\n return { row: lines[pos.row].row, column: pos.column };\n };\n Occur.prototype.matchingLines = function (session, options) {\n options = oop.mixin({}, options);\n if (!session || !options.needle)\n return [];\n var search = new Search();\n search.set(options);\n return search.findAll(session).reduce(function (lines, range) {\n var row = range.start.row;\n var last = lines[lines.length - 1];\n return last && last.row === row ?\n lines :\n lines.concat({ row: row, content: session.getLine(row) });\n }, []);\n };\n return Occur;\n}(Search));\nvar dom = require('./lib/dom');\ndom.importCssString(\".ace_occur-highlight {\\n\\\n border-radius: 4px;\\n\\\n background-color: rgba(87, 255, 8, 0.25);\\n\\\n position: absolute;\\n\\\n z-index: 4;\\n\\\n box-sizing: border-box;\\n\\\n box-shadow: 0 0 4px rgb(91, 255, 50);\\n\\\n}\\n\\\n.ace_dark .ace_occur-highlight {\\n\\\n background-color: rgb(80, 140, 85);\\n\\\n box-shadow: 0 0 4px rgb(60, 120, 70);\\n\\\n}\\n\", \"incremental-occur-highlighting\", false);\nexports.Occur = Occur;\n\n});\n\nace.define(\"ace/commands/occur_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/occur\",\"ace/keyboard/hash_handler\",\"ace/lib/oop\"], function(require, exports, module){var config = require(\"../config\"), Occur = require(\"../occur\").Occur;\nvar occurStartCommand = {\n name: \"occur\",\n exec: function (editor, options) {\n var alreadyInOccur = !!editor.session.$occur;\n var occurSessionActive = new Occur().enter(editor, options);\n if (occurSessionActive && !alreadyInOccur)\n OccurKeyboardHandler.installIn(editor);\n },\n readOnly: true\n};\nvar occurCommands = [{\n name: \"occurexit\",\n bindKey: 'esc|Ctrl-G',\n exec: function (editor) {\n var occur = editor.session.$occur;\n if (!occur)\n return;\n occur.exit(editor, {});\n if (!editor.session.$occur)\n OccurKeyboardHandler.uninstallFrom(editor);\n },\n readOnly: true\n }, {\n name: \"occuraccept\",\n bindKey: 'enter',\n exec: function (editor) {\n var occur = editor.session.$occur;\n if (!occur)\n return;\n occur.exit(editor, { translatePosition: true });\n if (!editor.session.$occur)\n OccurKeyboardHandler.uninstallFrom(editor);\n },\n readOnly: true\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar oop = require(\"../lib/oop\");\nfunction OccurKeyboardHandler() { }\noop.inherits(OccurKeyboardHandler, HashHandler);\n(function () {\n this.isOccurHandler = true;\n this.attach = function (editor) {\n HashHandler.call(this, occurCommands, editor.commands.platform);\n this.$editor = editor;\n };\n var handleKeyboard$super = this.handleKeyboard;\n this.handleKeyboard = function (data, hashId, key, keyCode) {\n var cmd = handleKeyboard$super.call(this, data, hashId, key, keyCode);\n return (cmd && cmd.command) ? cmd : undefined;\n };\n}).call(OccurKeyboardHandler.prototype);\nOccurKeyboardHandler.installIn = function (editor) {\n var handler = new this();\n editor.keyBinding.addKeyboardHandler(handler);\n editor.commands.addCommands(occurCommands);\n};\nOccurKeyboardHandler.uninstallFrom = function (editor) {\n editor.commands.removeCommands(occurCommands);\n var handler = editor.getKeyboardHandler();\n if (handler.isOccurHandler)\n editor.keyBinding.removeKeyboardHandler(handler);\n};\nexports.occurStartCommand = occurStartCommand;\n\n});\n\nace.define(\"ace/commands/incremental_search_commands\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/commands/occur_commands\"], function(require, exports, module){var config = require(\"../config\");\nvar oop = require(\"../lib/oop\");\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar occurStartCommand = require(\"./occur_commands\").occurStartCommand;\nexports.iSearchStartCommands = [{\n name: \"iSearch\",\n bindKey: { win: \"Ctrl-F\", mac: \"Command-F\" },\n exec: function (editor, options) {\n config.loadModule([\"core\", \"ace/incremental_search\"], function (e) {\n var iSearch = e.iSearch = e.iSearch || new e.IncrementalSearch();\n iSearch.activate(editor, options.backwards);\n if (options.jumpToFirstMatch)\n iSearch.next(options);\n });\n },\n readOnly: true\n }, {\n name: \"iSearchBackwards\",\n exec: function (editor, jumpToNext) { editor.execCommand('iSearch', { backwards: true }); },\n readOnly: true\n }, {\n name: \"iSearchAndGo\",\n bindKey: { win: \"Ctrl-K\", mac: \"Command-G\" },\n exec: function (editor, jumpToNext) { editor.execCommand('iSearch', { jumpToFirstMatch: true, useCurrentOrPrevSearch: true }); },\n readOnly: true\n }, {\n name: \"iSearchBackwardsAndGo\",\n bindKey: { win: \"Ctrl-Shift-K\", mac: \"Command-Shift-G\" },\n exec: function (editor) { editor.execCommand('iSearch', { jumpToFirstMatch: true, backwards: true, useCurrentOrPrevSearch: true }); },\n readOnly: true\n }];\nexports.iSearchCommands = [{\n name: \"restartSearch\",\n bindKey: { win: \"Ctrl-F\", mac: \"Command-F\" },\n exec: function (iSearch) {\n iSearch.cancelSearch(true);\n }\n }, {\n name: \"searchForward\",\n bindKey: { win: \"Ctrl-S|Ctrl-K\", mac: \"Ctrl-S|Command-G\" },\n exec: function (iSearch, options) {\n options.useCurrentOrPrevSearch = true;\n iSearch.next(options);\n }\n }, {\n name: \"searchBackward\",\n bindKey: { win: \"Ctrl-R|Ctrl-Shift-K\", mac: \"Ctrl-R|Command-Shift-G\" },\n exec: function (iSearch, options) {\n options.useCurrentOrPrevSearch = true;\n options.backwards = true;\n iSearch.next(options);\n }\n }, {\n name: \"extendSearchTerm\",\n exec: function (iSearch, string) {\n iSearch.addString(string);\n }\n }, {\n name: \"extendSearchTermSpace\",\n bindKey: \"space\",\n exec: function (iSearch) { iSearch.addString(' '); }\n }, {\n name: \"shrinkSearchTerm\",\n bindKey: \"backspace\",\n exec: function (iSearch) {\n iSearch.removeChar();\n }\n }, {\n name: 'confirmSearch',\n bindKey: 'return',\n exec: function (iSearch) { iSearch.deactivate(); }\n }, {\n name: 'cancelSearch',\n bindKey: 'esc|Ctrl-G',\n exec: function (iSearch) { iSearch.deactivate(true); }\n }, {\n name: 'occurisearch',\n bindKey: 'Ctrl-O',\n exec: function (iSearch) {\n var options = oop.mixin({}, iSearch.$options);\n iSearch.deactivate();\n occurStartCommand.exec(iSearch.$editor, options);\n }\n }, {\n name: \"yankNextWord\",\n bindKey: \"Ctrl-w\",\n exec: function (iSearch) {\n var ed = iSearch.$editor, range = ed.selection.getRangeOfMovements(function (sel) { sel.moveCursorWordRight(); }), string = ed.session.getTextRange(range);\n iSearch.addString(string);\n }\n }, {\n name: \"yankNextChar\",\n bindKey: \"Ctrl-Alt-y\",\n exec: function (iSearch) {\n var ed = iSearch.$editor, range = ed.selection.getRangeOfMovements(function (sel) { sel.moveCursorRight(); }), string = ed.session.getTextRange(range);\n iSearch.addString(string);\n }\n }, {\n name: 'recenterTopBottom',\n bindKey: 'Ctrl-l',\n exec: function (iSearch) { iSearch.$editor.execCommand('recenterTopBottom'); }\n }, {\n name: 'selectAllMatches',\n bindKey: 'Ctrl-space',\n exec: function (iSearch) {\n var ed = iSearch.$editor, hl = ed.session.$isearchHighlight, ranges = hl && hl.cache ? hl.cache\n .reduce(function (ranges, ea) {\n return ranges.concat(ea ? ea : []);\n }, []) : [];\n iSearch.deactivate(false);\n ranges.forEach(ed.selection.addRange.bind(ed.selection));\n }\n }, {\n name: 'searchAsRegExp',\n bindKey: 'Alt-r',\n exec: function (iSearch) {\n iSearch.convertNeedleToRegExp();\n }\n }].map(function (cmd) {\n cmd.readOnly = true;\n cmd.isIncrementalSearchCommand = true;\n cmd.scrollIntoView = \"animate-cursor\";\n return cmd;\n});\nfunction IncrementalSearchKeyboardHandler(iSearch) {\n this.$iSearch = iSearch;\n}\noop.inherits(IncrementalSearchKeyboardHandler, HashHandler);\n(function () {\n this.attach = function (editor) {\n var iSearch = this.$iSearch;\n HashHandler.call(this, exports.iSearchCommands, editor.commands.platform);\n this.$commandExecHandler = editor.commands.on('exec', function (e) {\n if (!e.command.isIncrementalSearchCommand)\n return iSearch.deactivate();\n e.stopPropagation();\n e.preventDefault();\n var scrollTop = editor.session.getScrollTop();\n var result = e.command.exec(iSearch, e.args || {});\n editor.renderer.scrollCursorIntoView(null, 0.5);\n editor.renderer.animateScrolling(scrollTop);\n return result;\n });\n };\n this.detach = function (editor) {\n if (!this.$commandExecHandler)\n return;\n editor.commands.off('exec', this.$commandExecHandler);\n delete this.$commandExecHandler;\n };\n var handleKeyboard$super = this.handleKeyboard;\n this.handleKeyboard = function (data, hashId, key, keyCode) {\n if (((hashId === 1 /*ctrl*/ || hashId === 8 /*command*/) && key === 'v')\n || (hashId === 1 /*ctrl*/ && key === 'y'))\n return null;\n var cmd = handleKeyboard$super.call(this, data, hashId, key, keyCode);\n if (cmd && cmd.command) {\n return cmd;\n }\n if (hashId == -1) {\n var extendCmd = this.commands.extendSearchTerm;\n if (extendCmd) {\n return { command: extendCmd, args: key };\n }\n }\n return false;\n };\n}).call(IncrementalSearchKeyboardHandler.prototype);\nexports.IncrementalSearchKeyboardHandler = IncrementalSearchKeyboardHandler;\n\n});\n\nace.define(\"ace/incremental_search\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/search\",\"ace/search_highlight\",\"ace/commands/incremental_search_commands\",\"ace/lib/dom\",\"ace/commands/command_manager\",\"ace/editor\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Range = require(\"./range\").Range;\nvar Search = require(\"./search\").Search;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar iSearchCommandModule = require(\"./commands/incremental_search_commands\");\nvar ISearchKbd = iSearchCommandModule.IncrementalSearchKeyboardHandler;\nfunction isRegExp(obj) {\n return obj instanceof RegExp;\n}\nfunction regExpToObject(re) {\n var string = String(re), start = string.indexOf('/'), flagStart = string.lastIndexOf('/');\n return {\n expression: string.slice(start + 1, flagStart),\n flags: string.slice(flagStart + 1)\n };\n}\nfunction stringToRegExp(string, flags) {\n try {\n return new RegExp(string, flags);\n }\n catch (e) {\n return string;\n }\n}\nfunction objectToRegExp(obj) {\n return stringToRegExp(obj.expression, obj.flags);\n}\nvar IncrementalSearch = /** @class */ (function (_super) {\n __extends(IncrementalSearch, _super);\n function IncrementalSearch() {\n var _this = _super.call(this) || this;\n _this.$options = { wrap: false, skipCurrent: false };\n _this.$keyboardHandler = new ISearchKbd(_this);\n return _this;\n }\n IncrementalSearch.prototype.activate = function (editor, backwards) {\n this.$editor = editor;\n this.$startPos = this.$currentPos = editor.getCursorPosition();\n this.$options.needle = '';\n this.$options.backwards = backwards;\n editor.keyBinding.addKeyboardHandler(this.$keyboardHandler);\n this.$originalEditorOnPaste = editor.onPaste;\n editor.onPaste = this.onPaste.bind(this);\n this.$mousedownHandler = editor.on('mousedown', this.onMouseDown.bind(this));\n this.selectionFix(editor);\n this.statusMessage(true);\n };\n IncrementalSearch.prototype.deactivate = function (reset) {\n this.cancelSearch(reset);\n var editor = this.$editor;\n editor.keyBinding.removeKeyboardHandler(this.$keyboardHandler);\n if (this.$mousedownHandler) {\n editor.off('mousedown', this.$mousedownHandler);\n delete this.$mousedownHandler;\n }\n editor.onPaste = this.$originalEditorOnPaste;\n this.message('');\n };\n IncrementalSearch.prototype.selectionFix = function (editor) {\n if (editor.selection.isEmpty() && !editor.session.$emacsMark) {\n editor.clearSelection();\n }\n };\n IncrementalSearch.prototype.highlight = function (regexp) {\n var sess = this.$editor.session, hl = sess.$isearchHighlight = sess.$isearchHighlight || sess.addDynamicMarker(new SearchHighlight(null, \"ace_isearch-result\", \"text\"));\n hl.setRegexp(regexp);\n sess._emit(\"changeBackMarker\"); // force highlight layer redraw\n };\n IncrementalSearch.prototype.cancelSearch = function (reset) {\n var e = this.$editor;\n this.$prevNeedle = this.$options.needle;\n this.$options.needle = '';\n if (reset) {\n e.moveCursorToPosition(this.$startPos);\n this.$currentPos = this.$startPos;\n }\n else {\n e.pushEmacsMark && e.pushEmacsMark(this.$startPos, false);\n }\n this.highlight(null);\n return Range.fromPoints(this.$currentPos, this.$currentPos);\n };\n IncrementalSearch.prototype.highlightAndFindWithNeedle = function (moveToNext, needleUpdateFunc) {\n if (!this.$editor)\n return null;\n var options = this.$options;\n if (needleUpdateFunc) {\n options.needle = needleUpdateFunc.call(this, options.needle || '') || '';\n }\n if (options.needle.length === 0) {\n this.statusMessage(true);\n return this.cancelSearch(true);\n }\n options.start = this.$currentPos;\n var session = this.$editor.session, found = this.find(session), shouldSelect = this.$editor.emacsMark ?\n !!this.$editor.emacsMark() : !this.$editor.selection.isEmpty();\n if (found) {\n if (options.backwards)\n found = Range.fromPoints(found.end, found.start);\n this.$editor.selection.setRange(Range.fromPoints(shouldSelect ? this.$startPos : found.end, found.end));\n if (moveToNext)\n this.$currentPos = found.end;\n this.highlight(options.re);\n }\n this.statusMessage(found);\n return found;\n };\n IncrementalSearch.prototype.addString = function (s) {\n return this.highlightAndFindWithNeedle(false, function (needle) {\n if (!isRegExp(needle))\n return needle + s;\n var reObj = regExpToObject(needle);\n reObj.expression += s;\n return objectToRegExp(reObj);\n });\n };\n IncrementalSearch.prototype.removeChar = function (c) {\n return this.highlightAndFindWithNeedle(false, function (needle) {\n if (!isRegExp(needle))\n return needle.substring(0, needle.length - 1);\n var reObj = regExpToObject(needle);\n reObj.expression = reObj.expression.substring(0, reObj.expression.length - 1);\n return objectToRegExp(reObj);\n });\n };\n IncrementalSearch.prototype.next = function (options) {\n options = options || {};\n this.$options.backwards = !!options.backwards;\n this.$currentPos = this.$editor.getCursorPosition();\n return this.highlightAndFindWithNeedle(true, function (needle) {\n return options.useCurrentOrPrevSearch && needle.length === 0 ?\n this.$prevNeedle || '' : needle;\n });\n };\n IncrementalSearch.prototype.onMouseDown = function (evt) {\n this.deactivate();\n return true;\n };\n IncrementalSearch.prototype.onPaste = function (text) {\n this.addString(text);\n };\n IncrementalSearch.prototype.convertNeedleToRegExp = function () {\n return this.highlightAndFindWithNeedle(false, function (needle) {\n return isRegExp(needle) ? needle : stringToRegExp(needle, 'ig');\n });\n };\n IncrementalSearch.prototype.convertNeedleToString = function () {\n return this.highlightAndFindWithNeedle(false, function (needle) {\n return isRegExp(needle) ? regExpToObject(needle).expression : needle;\n });\n };\n IncrementalSearch.prototype.statusMessage = function (found) {\n var options = this.$options, msg = '';\n msg += options.backwards ? 'reverse-' : '';\n msg += 'isearch: ' + options.needle;\n msg += found ? '' : ' (not found)';\n this.message(msg);\n };\n IncrementalSearch.prototype.message = function (msg) {\n if (this.$editor.showCommandLine) {\n this.$editor.showCommandLine(msg);\n this.$editor.focus();\n }\n };\n return IncrementalSearch;\n}(Search));\nexports.IncrementalSearch = IncrementalSearch;\nvar dom = require('./lib/dom');\ndom.importCssString(\"\\n.ace_marker-layer .ace_isearch-result {\\n position: absolute;\\n z-index: 6;\\n box-sizing: border-box;\\n}\\ndiv.ace_isearch-result {\\n border-radius: 4px;\\n background-color: rgba(255, 200, 0, 0.5);\\n box-shadow: 0 0 4px rgb(255, 200, 0);\\n}\\n.ace_dark div.ace_isearch-result {\\n background-color: rgb(100, 110, 160);\\n box-shadow: 0 0 4px rgb(80, 90, 140);\\n}\", \"incremental-search-highlighting\", false);\nvar commands = require(\"./commands/command_manager\");\n(function () {\n this.setupIncrementalSearch = function (editor, val) {\n if (this.usesIncrementalSearch == val)\n return;\n this.usesIncrementalSearch = val;\n var iSearchCommands = iSearchCommandModule.iSearchStartCommands;\n var method = val ? 'addCommands' : 'removeCommands';\n this[method](iSearchCommands);\n };\n}).call(commands.CommandManager.prototype);\nvar Editor = require(\"./editor\").Editor;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n useIncrementalSearch: {\n set: function (val) {\n this.keyBinding.$handlers.forEach(function (handler) {\n if (handler.setupIncrementalSearch) {\n handler.setupIncrementalSearch(this, val);\n }\n });\n this._emit('incrementalSearchSettingChanged', { isEnabled: val });\n }\n }\n});\n\n});\n\nace.define(\"ace/keyboard/emacs\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/incremental_search\",\"ace/commands/incremental_search_commands\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nrequire(\"../incremental_search\");\nvar iSearchCommandModule = require(\"../commands/incremental_search_commands\");\nvar HashHandler = require(\"./hash_handler\").HashHandler;\nexports.handler = new HashHandler();\nexports.handler.isEmacs = true;\nexports.handler.$id = \"ace/keyboard/emacs\";\ndom.importCssString(\"\\n.emacs-mode .ace_cursor{\\n border: 1px rgba(50,250,50,0.8) solid!important;\\n box-sizing: border-box!important;\\n background-color: rgba(0,250,0,0.9);\\n opacity: 0.5;\\n}\\n.emacs-mode .ace_hidden-cursors .ace_cursor{\\n opacity: 1;\\n background-color: transparent;\\n}\\n.emacs-mode .ace_overwrite-cursors .ace_cursor {\\n opacity: 1;\\n background-color: transparent;\\n border-width: 0 0 2px 2px !important;\\n}\\n.emacs-mode .ace_text-layer {\\n z-index: 4\\n}\\n.emacs-mode .ace_cursor-layer {\\n z-index: 2\\n}\", 'emacsMode');\nvar $formerLongWords;\nvar $formerLineStart;\nexports.handler.attach = function (editor) {\n $formerLongWords = editor.session.$selectLongWords;\n editor.session.$selectLongWords = true;\n $formerLineStart = editor.session.$useEmacsStyleLineStart;\n editor.session.$useEmacsStyleLineStart = true;\n editor.session.$emacsMark = null; // the active mark\n editor.session.$emacsMarkRing = editor.session.$emacsMarkRing || [];\n editor.emacsMark = function () {\n return this.session.$emacsMark;\n };\n editor.setEmacsMark = function (p) {\n this.session.$emacsMark = p;\n };\n editor.pushEmacsMark = function (p, activate) {\n var prevMark = this.session.$emacsMark;\n if (prevMark)\n this.session.$emacsMarkRing.push(prevMark);\n if (!p || activate)\n this.setEmacsMark(p);\n else\n this.session.$emacsMarkRing.push(p);\n };\n editor.popEmacsMark = function () {\n var mark = this.emacsMark();\n if (mark) {\n this.setEmacsMark(null);\n return mark;\n }\n return this.session.$emacsMarkRing.pop();\n };\n editor.getLastEmacsMark = function (p) {\n return this.session.$emacsMark || this.session.$emacsMarkRing.slice(-1)[0];\n };\n editor.emacsMarkForSelection = function (replacement) {\n var sel = this.selection, multiRangeLength = this.multiSelect ?\n this.multiSelect.getAllRanges().length : 1, selIndex = sel.index || 0, markRing = this.session.$emacsMarkRing, markIndex = markRing.length - (multiRangeLength - selIndex), lastMark = markRing[markIndex] || sel.anchor;\n if (replacement) {\n markRing.splice(markIndex, 1, \"row\" in replacement && \"column\" in replacement ?\n replacement : undefined);\n }\n return lastMark;\n };\n editor.on(\"click\", $resetMarkMode);\n editor.on(\"changeSession\", $kbSessionChange);\n editor.renderer.$blockCursor = true;\n editor.setStyle(\"emacs-mode\");\n editor.commands.addCommands(commands);\n exports.handler.platform = editor.commands.platform;\n editor.$emacsModeHandler = this;\n editor.on('copy', this.onCopy);\n editor.on('paste', this.onPaste);\n};\nexports.handler.detach = function (editor) {\n editor.renderer.$blockCursor = false;\n editor.session.$selectLongWords = $formerLongWords;\n editor.session.$useEmacsStyleLineStart = $formerLineStart;\n editor.off(\"click\", $resetMarkMode);\n editor.off(\"changeSession\", $kbSessionChange);\n editor.unsetStyle(\"emacs-mode\");\n editor.commands.removeCommands(commands);\n editor.off('copy', this.onCopy);\n editor.off('paste', this.onPaste);\n editor.$emacsModeHandler = null;\n};\nvar $kbSessionChange = function (e) {\n if (e.oldSession) {\n e.oldSession.$selectLongWords = $formerLongWords;\n e.oldSession.$useEmacsStyleLineStart = $formerLineStart;\n }\n $formerLongWords = e.session.$selectLongWords;\n e.session.$selectLongWords = true;\n $formerLineStart = e.session.$useEmacsStyleLineStart;\n e.session.$useEmacsStyleLineStart = true;\n if (!e.session.hasOwnProperty('$emacsMark'))\n e.session.$emacsMark = null;\n if (!e.session.hasOwnProperty('$emacsMarkRing'))\n e.session.$emacsMarkRing = [];\n};\nvar $resetMarkMode = function (e) {\n e.editor.session.$emacsMark = null;\n};\nvar keys = require(\"../lib/keys\").KEY_MODS;\nvar eMods = { C: \"ctrl\", S: \"shift\", M: \"alt\", CMD: \"command\" };\nvar combinations = [\"C-S-M-CMD\",\n \"S-M-CMD\", \"C-M-CMD\", \"C-S-CMD\", \"C-S-M\",\n \"M-CMD\", \"S-CMD\", \"S-M\", \"C-CMD\", \"C-M\", \"C-S\",\n \"CMD\", \"M\", \"S\", \"C\"];\ncombinations.forEach(function (c) {\n var hashId = 0;\n c.split(\"-\").forEach(function (c) {\n hashId = hashId | keys[eMods[c]];\n });\n eMods[hashId] = c.toLowerCase() + \"-\";\n});\nexports.handler.onCopy = function (e, editor) {\n if (editor.$handlesEmacsOnCopy)\n return;\n editor.$handlesEmacsOnCopy = true;\n exports.handler.commands.killRingSave.exec(editor);\n editor.$handlesEmacsOnCopy = false;\n};\nexports.handler.onPaste = function (e, editor) {\n editor.pushEmacsMark(editor.getCursorPosition());\n};\nexports.handler.bindKey = function (key, command) {\n if (typeof key == \"object\")\n key = key[this.platform];\n if (!key)\n return;\n var ckb = this.commandKeyBinding;\n key.split(\"|\").forEach(function (keyPart) {\n keyPart = keyPart.toLowerCase();\n ckb[keyPart] = command;\n var keyParts = keyPart.split(\" \").slice(0, -1);\n keyParts.reduce(function (keyMapKeys, keyPart, i) {\n var prefix = keyMapKeys[i - 1] ? keyMapKeys[i - 1] + ' ' : '';\n return keyMapKeys.concat([prefix + keyPart]);\n }, []).forEach(function (keyPart) {\n if (!ckb[keyPart])\n ckb[keyPart] = \"null\";\n });\n }, this);\n};\nexports.handler.getStatusText = function (editor, data) {\n var str = \"\";\n if (data.count)\n str += data.count;\n if (data.keyChain)\n str += \" \" + data.keyChain;\n return str;\n};\nexports.handler.handleKeyboard = function (data, hashId, key, keyCode) {\n if (keyCode === -1)\n return undefined;\n var editor = data.editor;\n editor._signal(\"changeStatus\");\n if (hashId == -1) {\n editor.pushEmacsMark();\n if (data.count) {\n var str = new Array(data.count + 1).join(key);\n data.count = null;\n return { command: \"insertstring\", args: str };\n }\n }\n var modifier = eMods[hashId];\n if (modifier == \"c-\" || data.count) {\n var count = parseInt(key[key.length - 1]);\n if (typeof count === 'number' && !isNaN(count)) {\n data.count = Math.max(data.count, 0) || 0;\n data.count = 10 * data.count + count;\n return { command: \"null\" };\n }\n }\n if (modifier)\n key = modifier + key;\n if (data.keyChain)\n key = data.keyChain += \" \" + key;\n var command = this.commandKeyBinding[key];\n data.keyChain = command == \"null\" ? key : \"\";\n if (!command)\n return undefined;\n if (command === \"null\")\n return { command: \"null\" };\n if (command === \"universalArgument\") {\n data.count = -4;\n return { command: \"null\" };\n }\n var args;\n if (typeof command !== \"string\") {\n args = command.args;\n if (command.command)\n command = command.command;\n if (command === \"goorselect\") {\n command = editor.emacsMark() ? args[1] : args[0];\n args = null;\n }\n }\n if (typeof command === \"string\") {\n if (command === \"insertstring\" ||\n command === \"splitline\" ||\n command === \"togglecomment\") {\n editor.pushEmacsMark();\n }\n command = this.commands[command] || editor.commands.commands[command];\n if (!command)\n return undefined;\n }\n if (!command.readOnly && !command.isYank)\n data.lastCommand = null;\n if (!command.readOnly && editor.emacsMark())\n editor.setEmacsMark(null);\n if (data.count) {\n var count = data.count;\n data.count = 0;\n if (!command || !command.handlesCount) {\n return {\n args: args,\n command: {\n exec: function (editor, args) {\n for (var i = 0; i < count; i++)\n command.exec(editor, args);\n },\n multiSelectAction: command.multiSelectAction\n }\n };\n }\n else {\n if (!args)\n args = {};\n if (typeof args === 'object')\n args.count = count;\n }\n }\n return { command: command, args: args };\n};\nexports.emacsKeys = {\n \"Up|C-p\": { command: \"goorselect\", args: [\"golineup\", \"selectup\"] },\n \"Down|C-n\": { command: \"goorselect\", args: [\"golinedown\", \"selectdown\"] },\n \"Left|C-b\": { command: \"goorselect\", args: [\"gotoleft\", \"selectleft\"] },\n \"Right|C-f\": { command: \"goorselect\", args: [\"gotoright\", \"selectright\"] },\n \"C-Left|M-b\": { command: \"goorselect\", args: [\"gotowordleft\", \"selectwordleft\"] },\n \"C-Right|M-f\": { command: \"goorselect\", args: [\"gotowordright\", \"selectwordright\"] },\n \"Home|C-a\": { command: \"goorselect\", args: [\"gotolinestart\", \"selecttolinestart\"] },\n \"End|C-e\": { command: \"goorselect\", args: [\"gotolineend\", \"selecttolineend\"] },\n \"C-Home|S-M-,\": { command: \"goorselect\", args: [\"gotostart\", \"selecttostart\"] },\n \"C-End|S-M-.\": { command: \"goorselect\", args: [\"gotoend\", \"selecttoend\"] },\n \"S-Up|S-C-p\": \"selectup\",\n \"S-Down|S-C-n\": \"selectdown\",\n \"S-Left|S-C-b\": \"selectleft\",\n \"S-Right|S-C-f\": \"selectright\",\n \"S-C-Left|S-M-b\": \"selectwordleft\",\n \"S-C-Right|S-M-f\": \"selectwordright\",\n \"S-Home|S-C-a\": \"selecttolinestart\",\n \"S-End|S-C-e\": \"selecttolineend\",\n \"S-C-Home\": \"selecttostart\",\n \"S-C-End\": \"selecttoend\",\n \"C-l\": \"recenterTopBottom\",\n \"M-s\": \"centerselection\",\n \"M-g\": \"gotoline\",\n \"C-x C-p\": \"selectall\",\n \"C-Down\": { command: \"goorselect\", args: [\"gotopagedown\", \"selectpagedown\"] },\n \"C-Up\": { command: \"goorselect\", args: [\"gotopageup\", \"selectpageup\"] },\n \"PageDown|C-v\": { command: \"goorselect\", args: [\"gotopagedown\", \"selectpagedown\"] },\n \"PageUp|M-v\": { command: \"goorselect\", args: [\"gotopageup\", \"selectpageup\"] },\n \"S-C-Down\": \"selectpagedown\",\n \"S-C-Up\": \"selectpageup\",\n \"C-s\": \"iSearch\",\n \"C-r\": \"iSearchBackwards\",\n \"M-C-s\": \"findnext\",\n \"M-C-r\": \"findprevious\",\n \"S-M-5\": \"replace\",\n \"Backspace\": \"backspace\",\n \"Delete|C-d\": \"del\",\n \"Return|C-m\": { command: \"insertstring\", args: \"\\n\" },\n \"C-o\": \"splitline\",\n \"M-d|C-Delete\": { command: \"killWord\", args: \"right\" },\n \"C-Backspace|M-Backspace|M-Delete\": { command: \"killWord\", args: \"left\" },\n \"C-k\": \"killLine\",\n \"C-y|S-Delete\": \"yank\",\n \"M-y\": \"yankRotate\",\n \"C-g\": \"keyboardQuit\",\n \"C-w|C-S-W\": \"killRegion\",\n \"M-w\": \"killRingSave\",\n \"C-Space\": \"setMark\",\n \"C-x C-x\": \"exchangePointAndMark\",\n \"C-t\": \"transposeletters\",\n \"M-u\": \"touppercase\",\n \"M-l\": \"tolowercase\",\n \"M-/\": \"autocomplete\",\n \"C-u\": \"universalArgument\",\n \"M-;\": \"togglecomment\",\n \"C-/|C-x u|S-C--|C-z\": \"undo\",\n \"S-C-/|S-C-x u|C--|S-C-z\": \"redo\",\n \"C-x r\": \"selectRectangularRegion\",\n \"M-x\": { command: \"focusCommandLine\", args: \"M-x \" }\n};\nexports.handler.bindKeys(exports.emacsKeys);\nexports.handler.addCommands({\n recenterTopBottom: function (editor) {\n var renderer = editor.renderer;\n var pos = renderer.$cursorLayer.getPixelPosition();\n var h = renderer.$size.scrollerHeight - renderer.lineHeight;\n var scrollTop = renderer.scrollTop;\n if (Math.abs(pos.top - scrollTop) < 2) {\n scrollTop = pos.top - h;\n }\n else if (Math.abs(pos.top - scrollTop - h * 0.5) < 2) {\n scrollTop = pos.top;\n }\n else {\n scrollTop = pos.top - h * 0.5;\n }\n editor.session.setScrollTop(scrollTop);\n },\n selectRectangularRegion: function (editor) {\n editor.multiSelect.toggleBlockSelection();\n },\n setMark: {\n exec: function (editor, args) {\n if (args && args.count) {\n if (editor.inMultiSelectMode)\n editor.forEachSelection(moveToMark);\n else\n moveToMark();\n moveToMark();\n return;\n }\n var mark = editor.emacsMark(), ranges = editor.selection.getAllRanges(), rangePositions = ranges.map(function (r) { return { row: r.start.row, column: r.start.column }; }), transientMarkModeActive = true, hasNoSelection = ranges.every(function (range) { return range.isEmpty(); });\n if (transientMarkModeActive && (mark || !hasNoSelection)) {\n if (editor.inMultiSelectMode)\n editor.forEachSelection({ exec: editor.clearSelection.bind(editor) });\n else\n editor.clearSelection();\n if (mark)\n editor.pushEmacsMark(null);\n return;\n }\n if (!mark) {\n rangePositions.forEach(function (pos) { editor.pushEmacsMark(pos); });\n editor.setEmacsMark(rangePositions[rangePositions.length - 1]);\n return;\n }\n function moveToMark() {\n var mark = editor.popEmacsMark();\n mark && editor.moveCursorToPosition(mark);\n }\n },\n readOnly: true,\n handlesCount: true\n },\n exchangePointAndMark: {\n exec: function exchangePointAndMark$exec(editor, args) {\n var sel = editor.selection;\n if (!args.count && !sel.isEmpty()) { // just invert selection\n sel.setSelectionRange(sel.getRange(), !sel.isBackwards());\n return;\n }\n if (args.count) { // replace mark and point\n var pos = { row: sel.lead.row, column: sel.lead.column };\n sel.clearSelection();\n sel.moveCursorToPosition(editor.emacsMarkForSelection(pos));\n }\n else { // create selection to last mark\n sel.selectToPosition(editor.emacsMarkForSelection());\n }\n },\n readOnly: true,\n handlesCount: true,\n multiSelectAction: \"forEach\"\n },\n killWord: {\n exec: function (editor, dir) {\n editor.clearSelection();\n if (dir == \"left\")\n editor.selection.selectWordLeft();\n else\n editor.selection.selectWordRight();\n var range = editor.getSelectionRange();\n var text = editor.session.getTextRange(range);\n exports.killRing.add(text);\n editor.session.remove(range);\n editor.clearSelection();\n },\n multiSelectAction: \"forEach\"\n },\n killLine: function (editor) {\n editor.pushEmacsMark(null);\n editor.clearSelection();\n var range = editor.getSelectionRange();\n var line = editor.session.getLine(range.start.row);\n range.end.column = line.length;\n line = line.substr(range.start.column);\n var foldLine = editor.session.getFoldLine(range.start.row);\n if (foldLine && range.end.row != foldLine.end.row) {\n range.end.row = foldLine.end.row;\n line = \"x\";\n }\n if (/^\\s*$/.test(line)) {\n range.end.row++;\n line = editor.session.getLine(range.end.row);\n range.end.column = /^\\s*$/.test(line) ? line.length : 0;\n }\n var text = editor.session.getTextRange(range);\n if (editor.prevOp.command == this)\n exports.killRing.append(text);\n else\n exports.killRing.add(text);\n editor.session.remove(range);\n editor.clearSelection();\n },\n yank: function (editor) {\n editor.onPaste(exports.killRing.get() || '');\n editor.keyBinding.$data.lastCommand = \"yank\";\n },\n yankRotate: function (editor) {\n if (editor.keyBinding.$data.lastCommand != \"yank\")\n return;\n editor.undo();\n editor.session.$emacsMarkRing.pop(); // also undo recording mark\n editor.onPaste(exports.killRing.rotate());\n editor.keyBinding.$data.lastCommand = \"yank\";\n },\n killRegion: {\n exec: function (editor) {\n exports.killRing.add(editor.getCopyText());\n editor.commands.byName.cut.exec(editor);\n editor.setEmacsMark(null);\n },\n readOnly: true,\n multiSelectAction: \"forEach\"\n },\n killRingSave: {\n exec: function (editor) {\n editor.$handlesEmacsOnCopy = true;\n var marks = editor.session.$emacsMarkRing.slice(), deselectedMarks = [];\n exports.killRing.add(editor.getCopyText());\n setTimeout(function () {\n function deselect() {\n var sel = editor.selection, range = sel.getRange(), pos = sel.isBackwards() ? range.end : range.start;\n deselectedMarks.push({ row: pos.row, column: pos.column });\n sel.clearSelection();\n }\n editor.$handlesEmacsOnCopy = false;\n if (editor.inMultiSelectMode)\n editor.forEachSelection({ exec: deselect });\n else\n deselect();\n editor.setEmacsMark(null);\n editor.session.$emacsMarkRing = marks.concat(deselectedMarks.reverse());\n }, 0);\n },\n readOnly: true\n },\n keyboardQuit: function (editor) {\n editor.selection.clearSelection();\n editor.setEmacsMark(null);\n editor.keyBinding.$data.count = null;\n },\n focusCommandLine: function (editor, arg) {\n if (editor.showCommandLine)\n editor.showCommandLine(arg);\n }\n});\nexports.handler.addCommands(iSearchCommandModule.iSearchStartCommands);\nvar commands = exports.handler.commands;\ncommands.yank.isYank = true;\ncommands.yankRotate.isYank = true;\nexports.killRing = {\n $data: [],\n add: function (str) {\n str && this.$data.push(str);\n if (this.$data.length > 30)\n this.$data.shift();\n },\n append: function (str) {\n var idx = this.$data.length - 1;\n var text = this.$data[idx] || \"\";\n if (str)\n text += str;\n if (text)\n this.$data[idx] = text;\n },\n get: function (n) {\n n = n || 1;\n return this.$data.slice(this.$data.length - n, this.$data.length).reverse().join('\\n');\n },\n pop: function () {\n if (this.$data.length > 1)\n this.$data.pop();\n return this.get();\n },\n rotate: function () {\n this.$data.unshift(this.$data.pop());\n return this.get();\n }\n};\n\n}); (function() {\n ace.require([\"ace/keyboard/emacs\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n "],"names":["require","exports","module","__extends","extendStatics","d","b","p","__","oop","Search","EditSession","SearchHighlight","Occur","_super","editor","options","pos","translatedPos","sess","regexp","hl","found","lines","foundLine","occurSession","session","nullPos","i","search","range","row","last","dom","occurStartCommand","alreadyInOccur","occurSessionActive","OccurKeyboardHandler","occurCommands","occur","HashHandler","handleKeyboard$super","data","hashId","key","keyCode","cmd","handler","config","e","iSearch","jumpToNext","string","ed","sel","ranges","ea","IncrementalSearchKeyboardHandler","scrollTop","result","extendCmd","Range","iSearchCommandModule","ISearchKbd","isRegExp","obj","regExpToObject","re","start","flagStart","stringToRegExp","flags","objectToRegExp","IncrementalSearch","_this","backwards","reset","moveToNext","needleUpdateFunc","shouldSelect","s","needle","reObj","c","evt","text","msg","commands","val","iSearchCommands","method","Editor","$formerLongWords","$formerLineStart","activate","prevMark","mark","replacement","multiRangeLength","selIndex","markRing","markIndex","lastMark","$resetMarkMode","$kbSessionChange","keys","eMods","combinations","command","ckb","keyPart","keyParts","keyMapKeys","prefix","str","modifier","count","args","renderer","h","moveToMark","rangePositions","r","hasNoSelection","dir","line","foldLine","marks","deselectedMarks","deselect","arg","idx","n","m"],"mappings":"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","x_google_ignoreList":[0]}