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;
- }
- });
- })();
-
|