UNPKG

feeles-ide

Version:

The hackable and serializable IDE to make learning material

44 lines (38 loc) 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = excessiveCare; function excessiveCare(cm, change) { if (change.origin === '+input' || change.origin === '*compose' /*|| change.origin === "paste"*/ ) { var matchFlag = false; var replaced = []; change.text.forEach(function (input) { if (input.match(/[!-~|”|’|、|。]/g)) { var han = input.replace(/[!-~]/g, function (s) { return String.fromCharCode(s.charCodeAt(0) - 0xfee0); }).replace(/”/g, '"').replace(/’/g, "'").replace(/、/g, ',').replace(/。/g, '.'); replaced.push(han); matchFlag = true; } else { replaced.push(input); } }); if (matchFlag) { change.update(change.from, change.to, replaced, ''); } } if (change.origin === '+delete') { // 特殊記号を消す前に警告を表示する var removed = cm.doc.getRange(change.from, change.to); if (/[=;.(){}*+-/'"]/.test(removed)) { var message = "".concat(removed, " \u306F \u3068\u304F\u3079\u3064\u306A \u3044\u307F\u3092\u3082\u3064 \u304D\u3054\u3046\u3067\u3059\u3002\u307B\u3093\u3068\u3046\u306B \u3051\u3057\u3066\u3044\u3044\u3067\u3059\u304B\uFF1F"); if (!confirm(message)) { change.cancel(); } } } }