| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | ace.define("ace/ext/spellcheck",[], function(require, exports, module) {"use strict";var event = require("../lib/event");exports.contextMenuHandler = function(e){    var host = e.target;    var text = host.textInput.getElement();    if (!host.selection.isEmpty())        return;    var c = host.getCursorPosition();    var r = host.session.getWordRange(c.row, c.column);    var w = host.session.getTextRange(r);    host.session.tokenRe.lastIndex = 0;    if (!host.session.tokenRe.test(w))        return;    var PLACEHOLDER = "\x01\x01";    var value = w + " " + PLACEHOLDER;    text.value = value;    text.setSelectionRange(w.length, w.length + 1);    text.setSelectionRange(0, 0);    text.setSelectionRange(0, w.length);    var afterKeydown = false;    event.addListener(text, "keydown", function onKeydown() {        event.removeListener(text, "keydown", onKeydown);        afterKeydown = true;    });    host.textInput.setInputHandler(function(newVal) {        console.log(newVal , value, text.selectionStart, text.selectionEnd);        if (newVal == value)            return '';        if (newVal.lastIndexOf(value, 0) === 0)            return newVal.slice(value.length);        if (newVal.substr(text.selectionEnd) == value)            return newVal.slice(0, -value.length);        if (newVal.slice(-2) == PLACEHOLDER) {            var val = newVal.slice(0, -2);            if (val.slice(-1) == " ") {                if (afterKeydown)                    return val.substring(0, text.selectionEnd);                val = val.slice(0, -1);                host.session.replace(r, val);                return "";            }        }        return newVal;    });};var Editor = require("../editor").Editor;require("../config").defineOptions(Editor.prototype, "editor", {    spellcheck: {        set: function(val) {            var text = this.textInput.getElement();            text.spellcheck = !!val;            if (!val)                this.removeListener("nativecontextmenu", exports.contextMenuHandler);            else                this.on("nativecontextmenu", exports.contextMenuHandler);        },        value: true    }});});                (function() {                    ace.require(["ace/ext/spellcheck"], function(m) {                        if (typeof module == "object" && typeof exports == "object" && module) {                            module.exports = m;                        }                    });                })();            
 |