/script-kiddie/002_script_kiddie/script-kiddie/node_modules/ace-builds/src-noconflict/ext-spellcheck.js |
@@ -0,0 +1,71 @@ |
ace.define("ace/ext/spellcheck",["require","exports","module","ace/lib/event","ace/editor","ace/config"], 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() {}); |
})(); |
|