ace.define( 'ace/ext/spellcheck', ['require', 'exports', 'module', 'ace/lib/event', 'ace/editor', 'ace/config'], function (e, t, n) { 'use strict' var r = e('../lib/event') t.contextMenuHandler = function (e) { var t = e.target, n = t.textInput.getElement() if (!t.selection.isEmpty()) return var i = t.getCursorPosition(), s = t.session.getWordRange(i.row, i.column), o = t.session.getTextRange(s) t.session.tokenRe.lastIndex = 0 if (!t.session.tokenRe.test(o)) return var u = '\x01\x01', a = o + ' ' + u ;(n.value = a), n.setSelectionRange(o.length, o.length + 1), n.setSelectionRange(0, 0), n.setSelectionRange(0, o.length) var f = !1 r.addListener(n, 'keydown', function l() { r.removeListener(n, 'keydown', l), (f = !0) }), t.textInput.setInputHandler(function (e) { if (e == a) return '' if (e.lastIndexOf(a, 0) === 0) return e.slice(a.length) if (e.substr(n.selectionEnd) == a) return e.slice(0, -a.length) if (e.slice(-2) == u) { var r = e.slice(0, -2) if (r.slice(-1) == ' ') return f ? r.substring(0, n.selectionEnd) : ((r = r.slice(0, -1)), t.session.replace(s, r), '') } return e }) } var i = e('../editor').Editor e('../config').defineOptions(i.prototype, 'editor', { spellcheck: { set: function (e) { var n = this.textInput.getElement() ;(n.spellcheck = !!e), e ? this.on('nativecontextmenu', t.contextMenuHandler) : this.removeListener('nativecontextmenu', t.contextMenuHandler) }, value: !0, }, }) } ) ;(function () { ace.require(['ace/ext/spellcheck'], function (m) { if (typeof module == 'object' && typeof exports == 'object' && module) { module.exports = m } }) })()